我仍在寻找使用erlang的脚,并且我阅读了有关使用“和”,“或”运算符的文档,但为什么以下内容未进行评估?
X = 15,
Y = 20,
X==15 and Y==20.
我期待终端中的“真实”,但我在==之前得到“语法错误”。
答案 0 :(得分:10)
尝试:
X = 15.
Y = 20.
(X==15) and (Y==20).
答案 1 :(得分:8)
您可能不想使用和。有两个问题,首先,你已经注意到它的优先级很奇怪,其次它不会使第二个参数短路。
1> false and exit(oops).
** exception exit: oops
2> false andalso exit(oops).
false
并且后来也引入了该语言并且表现得更加熟悉。一般来说,除非你有充分的理由愿意和使用,否则也要使用。
顺便说一句,orelse相当于或。
答案 2 :(得分:5)
没有大括号你也可以
X = 15.
Y = 20.
X == 15 andalso Y == 20.
答案 3 :(得分:2)
herre是运算符优先级/绑定规则表,供将来参考
http://www.erlang.org/doc/reference_manual/expressions.html#id2274242
============
这里有一些erlang“gotcha”列表,我觉得很有用
Learning Erlang? speedbump thread, common, small problems
http://www.erlang.org/faq/problems.html
http://baphled.wordpress.com/2009/01/05/lighting-up-the-tunnerl-pt-3-afterl-the-basics/
http://baphled.wordpress.com/2009/03/13/lighting-up-the-tunnerl-pt-9-the-gotchaz/