zhulinpinyu / zhulinpinyu.github.io

Blog
http://blog.zhulinpinyu.com
Apache License 2.0
2 stars 0 forks source link

Elixir 多个 or 的优化写法 #10

Open zhulinpinyu opened 5 years ago

zhulinpinyu commented 5 years ago

常规写法

find = fn(x) when x>10 or x<5 or x==7 -> x end 

优化写法

hell = fn(x) when true in [x>10,x<5,x==7] -> x end 

Thanks: https://github.com/blackode/elixir-tips#1-multiple--or

edwardzhou commented 5 years ago

我更喜欢 常规写法 , 毫无心理负担。

Ljzn commented 5 years ago

哈哈, 有创意

Ljzn commented 5 years ago

and 也可以

iex(3)> find = fn(x) when x<10 and x>5 and x==7 -> x end 
#Function<6.128620087/1 in :erl_eval.expr/5>
iex(4)> find.(7)
7
iex(5)> find = fn(x) when false not in [x<10, x>5, x==7] -> x end      
#Function<6.128620087/1 in :erl_eval.expr/5>
iex(6)> find.(7)                                                  
7