我知道可以将一个单独传递list给一个函数然后迭代它.但是,我更喜欢具有更明确签名的函数.所以我真正想知道的是Elixir是否有任何arguments与Javascript中的对象相同的东西.
据我所知,答案是否定的.我在讨论这个话题时最接近的是这个问题的答案.
我正在寻找这个功能的原因是,我有几次发现自己将相同的转换应用于多个参数,这有点单调乏味.这可能是通过宏实现的吗?
Chr*_*ord 15
这是可能的,但我很少使用它:
binding()在函数顶部调用将为您提供范围及其值的绑定的关键字列表,如果您将其作为函数的第一行调用,则它将是参数,即:
iex(6)> defmodule Mod do
...(6)> def args(a, b, c) do
...(6)> for {arg, val} <- binding() do
...(6)> IO.puts "#{arg} = #{inspect val}"
...(6)> end
...(6)> end
...(6)> end
iex(7)> Mod.args(1,2,3)
a = 1
b = 2
c = 3
[:ok, :ok, :ok]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1216 次 |
| 最近记录: |