Date Modified Category Erlang Tags Erlang

Erlang 里, 不只数字可以比较大小, 基本上所有变量都可以比较大小.

大小关系是:

数字 < 原子 < reference < 函数 < 端口 < pid < 元组 < 列表 < 二进制

也就是说, 数字总是比原子小, 原子总是比列表小...

也就是说, 即使 Val > 5true, 也不能保证 Val 是个数字.

而且, 同一种非数字类型也有大小, 比如说

    a > b         %% 假
    "b" > "aa"    %% 真

想不明白这样比较大小有啥意义, 真是个坑啊.


update: 2014年6月8日

所有数据项都可以比较, 在进行lists:sort/2的时候就会很方便.

而且, 要保证 Val 是个数字, 更合理的应该是 is_number(Val), 而不是判断它的大小.