erLang学些笔记5--条件判断语法2
一:if 表达式之true的使用
true:在if结构中表示除此之外的所有情况!
对于 if else 的结构 我们采用的是
?
注意分号就是orelse的意思,erlang 的语法有时候看起来很没规律!很强调表示式的匹配。
现在我们回过头来看,对于以下两种方式的使用都是可以的,效率上也没什么区别!1. fun(Y) -> xx; fun(X) -> yy; fun(_) -> zz. 2. fun(X) -> if X == 1 -> xx; X == 2 -> yy; true -> zz end. 3. func(X) -> if X == 1 -> xx; X == 2 -> yy; X != 1 , X != 2 -> zz end.4. func(X) -> case X of X == 1 -> xx; X == 2 -> yy; _ -> zz end.?
对于以上四种方式改如何选择呢?
1.从执行效率上看,四种方式没什么大的区别
2.第一种方式最扩张性最好,可以对于多个传递的参数进行处理。比如 f(A,B,C) ,如果对于用 case的话,只能传递数组的方式了 f({A,B,C})
3.单纯的if,从理解上来说最容易!
4.具体方式的选用还是看个人喜欢,更容易接受哪种!无强制要求
总之遵循一个原则:
Clean code is when you look at a routine and it's pretty much what you expected