相关疑难解决方法(0)

什么是"pin"运算符,Elixir变量是否可变?

目前正试图了解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

40
推荐指数
2
解决办法
5646
查看次数