目前正试图了解Elixir中的"^"运算符.来自网站:
当没有兴趣重新绑定变量而是匹配匹配之前的值时,可以使用pin运算符^:
来源 - http://elixir-lang.org/getting_started/4.html
考虑到这一点,您可以将新值附加到符号,如下所示:
iex> x = 1 # Outputs "1"
iex> x = 2 # Outputs "2"
Run Code Online (Sandbox Code Playgroud)
我也可以这样做:
iex> x = x + 1 # Outputs "3"!
Run Code Online (Sandbox Code Playgroud)
所以我的第一个问题是; Elixir变量是否可变? 看起来确实如此......在函数式编程语言中,这应该是不可能的?
所以现在我们来到"^"运算符......
iex> x = 1 # Outputs "1"
iex> x = 2 # Outputs "2"
iex> x = 1 # Outputs "1"
iex> ^x = 2 # "MatchError"
iex> ^x = 1 # Outputs "1"
Run Code Online (Sandbox Code Playgroud)
我认为"^"的效果是将"x"锁定到绑定到它的最后一个值.这就是它的全部吗?为什么不确保所有'匹配'/赋值都像Erlang本身一样不可变?
我刚刚习惯了......
erlang functional-programming immutability elixir variable-assignment