Elixir 长生不老药药盒构造与装订

Elixir 长生不老药药盒构造与装订,elixir,Elixir,我正在学习长生不老药,但在一个概念上遇到了困难。考虑下面的代码: iex(3)> case 1 do ...(3)> x -> "x exists" ...(3)> _ -> "something exists" ...(3)> end "x exists" iex(4)> x ** (CompileError) iex:4: undefined function x/0 变量x尚未绑定到任何对象,那么第一个

我正在学习长生不老药,但在一个概念上遇到了困难。考虑下面的代码:

iex(3)> case 1 do              
...(3)> x -> "x exists"        
...(3)> _ -> "something exists"
...(3)> end
"x exists"
iex(4)> x
** (CompileError) iex:4: undefined function x/0

变量
x
尚未绑定到任何对象,那么第一个
大小写
表达式如何匹配?我认为这可能是因为Elixir在赋值方面与Erlang不同,因此可能
x
在这个过程中被绑定,但命令4显示
x
没有绑定。

case
表达式的模式或主体中绑定的值仅在该分支中可用

case 1 do
  x -> IO.puts(x)
end
将打印

1
如果要从
案例
中提取值,可以存储
案例
调用的返回值:

x = case 2 do
  1 -> 2
  2 -> 3
  _ -> 0
end

x #=> 3

好极了!只要SO允许,我会尽快接受这个答案。:-)