当前位置:  开发笔记 > 编程语言 > 正文

Elixir中的函数参数中双反斜杠的含义是什么?

如何解决《Elixir中的函数参数中双反斜杠的含义是什么?》经验,为你挑选了2个好方法。

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

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

双反斜杠是什么意思?我用Google搜索并找到http://elixir-lang.org/getting-started/sigils.html,但这适用于正常表达式而不是函数params.



1> ham-sandwich..:

指定默认值.

\\在参数名称后使用定义的函数参数提供可选的默认值.因此,如果调用loop/2,则第一个参数将是从返回的pid self().如果调用了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



2> arathunku..:

\\用于定义默认参数,源

您可以通过在iex控制台中尝试来观察该行为,例如:

defmodule Foo do
  def bar(x \\ 1, y) do
    x * y
  end
end

Foo.bar(2,3) # => 6
Foo.bar(3) # => 3

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有