原文地址: https://blog.cndenis.com/erlang/2013/10/Erlang的大小比较.html
Erlang 里, 不只数字可以比较大小, 基本上所有变量都可以比较大小.
大小关系是:
数字 < 原子 < reference < 函数 < 端口 < pid < 元组 < 列表 < 二进制
也就是说, 数字总是比原子小, 原子总是比列表小...
也就是说, 即使 Val > 5
为 true
, 也不能保证 Val
是个数字.
而且, 同一种非数字类型也有大小, 比如说
a > b %% 假
"b" > "aa" %% 真
想不明白这样比较大小有啥意义, 真是个坑啊.
update: 2014年6月8日
所有数据项都可以比较, 在进行lists:sort/2
的时候就会很方便.
而且, 要保证 Val
是个数字, 更合理的应该是 is_number(Val)
, 而不是判断它的大小.
原文地址: https://blog.cndenis.com/erlang/2013/10/Erlang的大小比较.html