相关疑难解决方法(0)

Elixir:允许重新绑定变量的基本原理

当Erlang不允许时,允许在Elixir中重新绑定变量的原因是什么?

erlang elixir

13
推荐指数
3
解决办法
670
查看次数

Elixir中等号的确切含义是什么?

我不明白Elixir中的等号到底是什么意思。尚不清楚的是,它看起来像是分配和模式匹配操作之间的混合。

iex(1)> x=4
4
iex(2)> y=5
5
iex(3)> 3=y
** (MatchError) no match of right hand side value: 5

iex(3)> y=3
3
iex(4)> y=x
4
Run Code Online (Sandbox Code Playgroud)

我了解在Elixir中,等于运算符的意思是将=符号的左侧与右侧匹配。前两行对我来说很有意义。x和y是未绑定的变量,因此它们可以匹配任何内容。它们在匹配时受到约束。因此,我了解第三行。您不能将3与5相匹配。

我开始放松的地方是为什么在没有给出相同错误的情况下执行最后两行。看起来等号又回到了仅作为赋值运算符的地步。

在没有充分理解的情况下,我尝试将这种行为视为事实,并尝试进一步学习该语言。但是由于模式匹配是Elixir的核心机制之一,因此我不断锁定并感到应该回到最初的问题。在我完全理解“ =”符号的确切含义以及逻辑之后,我将不做任何进一步的介绍。

functional-programming equals elixir iex

3
推荐指数
1
解决办法
204
查看次数

为什么有些变量会自动绑定到Elixir中的其他值?防爆.案件

我正在学习Elixir,我很好奇为什么会发生以下情况:

iex(4)> case {:one, :two} do
...(4)>   {:four, :five} ->
...(4)>     "This won't match"
...(4)>   {:one, x} ->
...(4)>     "This will match and bind `x` to `:two`"
...(4)>   _ ->
...(4)>     "This will match any value"
...(4)> end
"This will match and bind `x` to `:two`"
Run Code Online (Sandbox Code Playgroud)

因此,如果在"模式匹配"示例中,为什么空变量会x自动绑定到原子:two并提供正匹配?这是第一次运行时x不相等.:twocase

我只是没有理解究竟发生了什么.

谢谢.

erlang elixir

1
推荐指数
1
解决办法
118
查看次数

标签 统计

elixir ×3

erlang ×2

equals ×1

functional-programming ×1

iex ×1