Elixir cond
2023-12-14 16:44 更新
当你想要匹配不同的值时可以用。然而,我们有时想要检查不同的情形并找出其中第一个结果为真的。这时,我们可以使用:
case
cond
iex> cond do
...> 2 + 2 == 5 ->
...> "This will not be true"
...> 2 * 2 == 3 ->
...> "Nor this"
...> 1 + 1 == 2 ->
...> "But this will"
...> end
"But this will"
这和许多命令语言中的从句是一样的(虽然在这里不经常用到)。else if
如果没有一种情况返回为真,则抛出一个错误()。所以,有必要在最后加上一个等于的最终情况:CondClauseError
true
iex> cond do
...> 2 + 2 == 5 ->
...> "This is never true"
...> 2 * 2 == 3 ->
...> "Nor this"
...> true ->
...> "This is always true (equivalent to else)"
...> end
"This is always true (equivalent to else)"
最后,注意会将任何不是或的值认为真:cond
nil
false
iex> cond do
...> hd([1, 2, 3]) ->
...> "1 is considered as true"
...> end
"1 is considered as true"
以上内容是否对您有帮助:
更多建议: