Elixir 什么';“这就是”的意思&引用&引用&引用&引用_&引用;,及"&引用;长生不老药中的语法

Elixir 什么';“这就是”的意思&引用&引用&引用&引用_&引用;,及"&引用;长生不老药中的语法,elixir,Elixir,关于理解elixir中的以下语法,我需要帮助,?,和。 这些语法在长生不老药的功能中扮演什么角色?例如Repo.get 我不确定它们是函数名还是角色。虽然我知道是用来调用匿名函数的。和\uu用于任何或可变的?-故障时引发异常的函数的约定 ?-返回布尔值的函数的约定 。-用于忽略参数或模式匹配表达式的一部分 -如您所述,它用于调用匿名函数,但也用于访问模块函数,例如Mod.a(arg)首先和? 它们是命名约定,通常应用于函数名的末尾,不是任何特殊语法 -如果函数遇到错误,将引发异常 一个很好的例子

关于理解elixir
中的以下语法,我需要帮助
。 这些语法在长生不老药的功能中扮演什么角色?例如
Repo.get


我不确定它们是函数名还是角色。虽然我知道
是用来调用匿名函数的。和
\uu
用于任何或可变的?

-故障时引发异常的函数的约定

-返回布尔值的函数的约定

-用于忽略参数或模式匹配表达式的一部分


-如您所述,它用于调用匿名函数,但也用于访问模块函数,例如
Mod.a(arg)

首先

它们是命名约定,通常应用于函数名的末尾,不是任何特殊语法

-如果函数遇到错误,将引发异常

一个很好的例子是(它也有一个不会引发异常的元素)。在给定索引处查找元素(从零开始)。 如果给定位置超出集合的范围,则引发OutOfBoundsError

-用于显示函数将返回布尔值,true或false。一个很好的例子是,如果函数对任何值都为true,则返回true,否则返回false

-这将忽略函数或模式匹配中的参数。如果您愿意,可以在下划线.Ex-\u base之后命名

这通常用于尾部递归函数的末尾。幂函数就是一个很好的例子。如果你想把任何一个数字的基数提高到0,结果就是1,所以基数是多少并不重要

defp getPower(_base,0), do: 1
-用于访问模块内的任何函数,或按照您的建议调用匿名函数

iex(1)> square = fn(number) -> number * number end
iex(2)> square.(4)

\uu
开头的变量(如
\u foobar
)与仅由
\u
组成的变量(如
def foo(\uu,\u bar)do,\u bar end
)之间确实存在着重大差异。尝试使用
\uuuu
会导致编译时“未绑定变量”错误。带有下划线(
\u bar
)前缀的变量用于防止对未使用的变量发出警告,并且不会阻止编译。它们的使用只会产生一个警告:“警告:带下划线的变量”\u bar“在设置后使用。前导下划线表示应忽略该变量的值…”“是否有任何原因是\u integer没有问号?”@请注意:
getPower
函数可以使用模式匹配:
defpgetpower(_base,0),do:1