【问题标题】:How does the Erlang comparison operator work exactly?Erlang 比较运算符是如何工作的?
【发布时间】:2014-01-24 21:05:45
【问题描述】:

对于这样的基本问题,我很抱歉,但我无法弄清楚:如果我使用带有术语的普通关系比较运算符 - 它是如何工作的?

例如:

"AAA" > "aaa" => false - 为什么"AAA" 小于"aaa"

如果我有两个原子:

atom1 < atom2 => true - 为什么atom1 小于atom2

如何/何时将比较运算符与原子一起使用?

【问题讨论】:

    标签: erlang


    【解决方案1】:
    1. A 的 ASCII 码为 65,a 的 ASCII 码为 97,因此 "A" < "a"
    2. 引用发明者的话:“实际顺序并不重要,但明确定义的总顺序很重要”。这是因为您希望所有术语都具有可比性,因为只有在这种情况下您才能对它们进行排序(这通常很有用)。

    具体规则见http://www.erlang.org/doc/reference_manual/expressions.html#id77480

    7.11 术语比较

    定义如下顺序:

    number

    列表逐个元素进行比较。元组按大小排序,大小相同的两个元组逐个元素进行比较。

    【讨论】:

    • 感谢您的回答!
    • 为了比较两个原子,它对原子中的字符进行直接的词法比较,如果字符相同,则较长的原子较大。所以cat > car => truecat < cats => true
    • 这是真的,但是,我找不到关于它是否必须这样的信息。
    猜你喜欢
    • 2015-02-27
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    相关资源
    最近更新 更多