Elixir 函数参数中的双反斜杠是什么意思?

2024-01-11

我最近遇到了一个代码片段,例如:

def loop(ring_pid \\ self, nil, true) do
  #some code 
end

双反斜杠是什么意思?我用谷歌搜索发现http://elixir-lang.org/getting-started/sigils.html http://elixir-lang.org/getting-started/sigils.html,但这适用于正则表达式而不是函数参数。


It 指定默认值.

使用定义的函数参数\\在参数名称之后提供可选的默认值。因此,如果loop/2被调用时,第一个参数将是从返回的 pidself(). If loop/3被调用,那么你需要指定一个pid。

让我们再举一个(简单的)例子:

math.ex

defmodule Math do   
  def add(a \\ 2, b) do
    a + b   
  end 
end

iex (1)> c("math.ex")

iex (2)> Math.add(1, 8) # add/2, because you are matching 1 to `a`.
9

iex (3)> Math.add(8) # add/1, because `a` is by default matched to 2.
10
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elixir 函数参数中的双反斜杠是什么意思? 的相关文章

随机推荐