Erlang复合布尔表达式
我阅读了有关使用Erlang复合布尔表达式,erlang,boolean,Erlang,Boolean,我阅读了有关使用和、或运算符的文档,但为什么下面的内容没有进行评估 X = 15, Y = 20, X==15 and Y==20. 我希望在终端中出现“true”,但我得到了“syntax error before==”请尝试: X = 15. Y = 20. (X==15) and (Y==20). 没有支架,你也可以这样做 X = 15. Y = 20. X == 15 andalso Y == 20. 您可能不想使用和。和有两个问题,首先,正如你所注意到的,它的优先级很奇怪,其次,
和
、或
运算符的文档,但为什么下面的内容没有进行评估
X = 15,
Y = 20,
X==15 and Y==20.
我希望在终端中出现“true”,但我得到了“syntax error before==”请尝试:
X = 15.
Y = 20.
(X==15) and (Y==20).
没有支架,你也可以这样做
X = 15.
Y = 20.
X == 15 andalso Y == 20.
您可能不想使用和。和有两个问题,首先,正如你所注意到的,它的优先级很奇怪,其次,它没有短路第二个参数
1> false and exit(oops).
** exception exit: oops
2> false andalso exit(oops).
false
andalso后来被介绍到语言中,其行为方式可能更为熟悉。一般来说,使用andalso,除非你有充分的理由选择and
顺便说一句,orelse相当于or herre的运算符优先级/绑定规则表,供将来参考 ============ 这里有一些我觉得有用的erlang“gotcha”列表
这实际上取决于您是将其用于控制测试还是布尔测试。使用and/or有助于测试“布尔”运算的返回值。