ard*_*ama 15 elixir elixir-framework
我需要关于灵药理解下面的语法帮助!,?,_,和..elixir函数中的语法角色是什么?例如Repo.get!.
我不确定它们只是函数名称,还是有角色.虽然我知道.是为了调用匿名函数.而_对于任何一个或可变参数?
bit*_*ker 22
! - 关于失败例外的职能公约.
? - 返回布尔值的函数约定
_ - 用于忽略参数或模式匹配表达式的一部分.
.- 如您所述,用于调用匿名函数,但也用于访问模块函数,如Mod.a(arg).
cod*_*hal 14
首先!和?
它们是通常应用于函数名末尾的命名约定,并不是任何特殊语法.
! - 如果函数遇到错误,将引发异常.
一个很好的例子是Enum.fetch!(它也有一个相同的Enum.fetch,它不会引发异常).在给定的索引处绑定元素(从零开始).如果给定位置超出集合范围,则引发OutOfBoundsError.
? - 用于显示函数将返回布尔值,true或false.一个很好的例子是Enum.any?如果函数对于任何值为true,则返回true,否则返回false
_ - 这将忽略函数或模式匹配中的参数.如果你愿意,可以在underscore.Ex - _base之后给出一个名字
这通常用于尾递归函数的末尾.一个很好的例子是电源功能.如果你想将任何数字基数提高到0,结果就是1,所以基数是什么并不重要
defp getPower(_base,0), do: 1
Run Code Online (Sandbox Code Playgroud)
. - 用于访问模块内的任何功能或您建议调用匿名功能
iex(1)> square = fn(number) -> number * number end
iex(2)> square.(4)
Run Code Online (Sandbox Code Playgroud)