Erlang 实现三目运算
众所周知,Erlang 没有三目运算符的,不过可以通过以下方式定义
-define(IIF(Cond,E1,E2), (case (Cond) of true -> (case is_function(E1) of true->apply(E1, []); false->E1 end); false -> (case is_function(E2) of true->apply(E2, []); false->E2 end) end)).
然后就可以这样使用了:
A = 10,
B = ?IIF(A > X, fun()->
A + 20
end, A * X)
版权声明:本文为Xudinghui原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。