Elixir - Case 语句
Case 语句可以被视为命令式语言中 switch 语句的替代。 Case 接受一个变量/文字,并在不同的情况下对其应用模式匹配。 如果任何 case 匹配,Elixir 就会执行与该 case 关联的代码并退出 case 语句。 如果未找到匹配项,则会退出语句,并显示 未找到匹配子句的 CaseClauseError。 您应该始终有一个带有 _ 的情况,它与所有值匹配。 这有助于防止上述错误。 这也与 switch-case 语句中的 default 情况相当。
语法
case 语句的语法如下 −
case value do matcher_1 -> #code to execute if value matches matcher_1 matcher_2 -> #code to execute if value matches matcher_2 matcher_3 -> #code to execute if value matches matcher_3 ... _ -> #code to execute if value does not match any of the above end
示例
case 3 do 1 -> IO.puts("Hi, I'm one") 2 -> IO.puts("Hi, I'm two") 3 -> IO.puts("Hi, I'm three") _ -> IO.puts("Oops, you dont match!") end
上面的程序产生以下结果。
Hi, I'm three
请注意,case 选择是使用模式匹配完成的,因此您可以使用标准模式匹配技术。