我正在学习Elixir,我想知道使用if (i < 5 && current.equals(listaTags.get(i + 1))) {...}
调用模块函数有什么好处:
apply
而不是使用普通调用:
apply(Enum, :reverse, [[1, 2, 3]])
第一个什么时候更好?
答案 0 :(得分:3)
当在编译时知道模块的名称,函数和要传递给它的参数数量时,不需要调用apply/3
。如果在运行时选择了其中任何一个,apply/3
是进行适当调用的唯一方法。在某种程度上,它就像一个非常有限的一部分&#34; eval&#34; function:它允许你存储模块和函数的名称以及在变量中传递给它的参数,并进行适当的调用。
因此,简而言之,只有在没有它的情况下无法完成任务时,您才需要使用apply/3
。