Elixir case
2023-12-14 16:40 更新
case
允许我们将一个值与多个模式进行匹配,直到匹配成功:
iex> case {1, 2, 3} do
...> {4, 5, 6} ->
...> "This clause won't match"
...> {1, x, 3} ->
...> "This clause will match and bind x to 2 in this clause"
...> _ ->
...> "This clause would match any value"
...> end
"This clause will match and bind x to 2 in this clause"
如果你想对已存在的变量进行模式匹配,你需要使用操作符:^
iex> x = 1
1
iex> case 10 do
...> ^x -> "Won't match"
...> _ -> "Will match"
...> end
"Will match"
卫语句中允许包含额外的条件:
iex> case {1, 2, 3} do
...> {1, x, 3} when x > 0 ->
...> "Will match"
...> _ ->
...> "Would match, if guard condition were not satisfied"
...> end
"Will match"
第一条语句在x是正数时才能匹配。
以上内容是否对您有帮助:
更多建议: