Julia中是否有类似Crystal语言的<=>通用比较运算符?
Julia对应比较运算符实现
Julia 内置了和Crystal语言<=>(宇宙飞船运算符)功能完全一致的通用实现,所有稳定版本都支持cmp函数,部分较新版本也直接支持<=>运算符作为别名,返回规则完全匹配你的使用习惯:
- 第一个操作数小于第二个时返回
-1 - 两个操作数相等时返回
0 - 第一个操作数大于第二个时返回
1
使用示例
你给出的Crystal样例对应Julia写法如下:
println(cmp(404, 405))
运行后输出为:
-1
如果交换两个参数顺序执行cmp(405, 404),返回结果为1,比较相等值时返回0,无需你自行编写分支判断逻辑。
扩展说明
cmp支持Julia所有内置可比较类型(数值、字符串、时间日期等),如果你需要对自定义类型使用该功能,只要为自定义类型实现Base.isless方法,cmp就可以自动适配,返回值可以直接存入数据库使用。
内容的提问来源于stack exchange,提问作者dro
相关产品推荐
相关产品推荐

