当前位置:  开发笔记 > 编程语言 > 正文

为什么Erlang中的nil> 0?

如何解决《为什么Erlang中的nil>0?》经验,为你挑选了1个好方法。

Erlang是我遇到的第一种用于nil> 0的语言.

这个决定背后的故事是什么?

其他语言似乎表现不同.

蟒蛇:

None > 0
# False

JavaScript的:

null > 0
// false

红宝石:

nil > 0
NoMethodError: undefined method `>' for nil:NilClass

byaruhaf.. 10

在Erlang中,任何术语都可以与任何其他术语进行比较.Erlang Term Comparisons的排序是:

number < atom < reference < fun < port < pid < tuple < map < nil < list < bit string

因此零> 0真实的更多信息期限比较



1> byaruhaf..:

在Erlang中,任何术语都可以与任何其他术语进行比较.Erlang Term Comparisons的排序是:

number < atom < reference < fun < port < pid < tuple < map < nil < list < bit string

因此零> 0真实的更多信息期限比较


在上面的顺序中,`nil`实际上代表空列表`[]`,而如果你在Erlang代码中写`nil`,它就是一个原子.根据排序,任何原子都比任何引用都"少",因此`nil> make_ref()`计算为'false`.另一方面,`[]> make_ref()`的计算结果为`true`.
推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有