是否可以使用变量长度的参数列表定义函数?
我知道我可以写:
function() -> function([]).
function(X) when not is_list(X) -> function([X]);
function(X) -> do_something_with_arguments(X).
Run Code Online (Sandbox Code Playgroud)
但我想避免这种技术.
一种方法是传递列表中的所有参数:
function(ListOfParameters)
然后你可以迭代说ListOfParameters.这样,你可以让你的函数声明能够接受任意数量的"参数",只需在声明中添加更多的术语......但我不确定这是你所希望的.你是否正在考虑C vararg参数列表?在肯定的情况下,请阅读下一段.
你必须记住,Erlang是基于模式匹配的.函数"声明"中的参数在调用函数时用作匹配模式.你必须抛开你的"程序编程"思维模式,以便充分利用Erlang的力量.
| 归档时间: |
|
| 查看次数: |
2809 次 |
| 最近记录: |