Elixir中下划线_的行为

ank*_*981 4 elixir

我正在探索Elixir,并发现下划线有些奇怪。我们使用它来匹配任何变量并将其丢弃,因为Elixir认为它是永久未绑定的:

iex(38)> _
** (CompileError) iex:38: unbound variable _
Run Code Online (Sandbox Code Playgroud)

但是,当我为下划线分配内容时,该值将以与普通变量绑定相同的方式回显:

iex(38)> x = 10
10
iex(39)> _ = 10
10
Run Code Online (Sandbox Code Playgroud)

10在第二种情况下,shell通过回显意味着什么?

Dog*_*ert 5

=运营商在做模式匹配后返回RHS的值。在这种情况下,10被分配时将被忽略_,但整个表达式的返回值仍为10