【发布时间】:2017-06-17 05:16:35
【问题描述】:
例如,我有一个名为or 的函数,它被定义为;
or(filters: FilterDefinition*)
然后我有一个列表:
List(X, Y, Z)
我现在需要做的就是给or点赞
or(func(X), func(Y), func(Z))
正如预期的那样,列表的长度可能会改变。
在 Scala 中最好的方法是什么?
【问题讨论】:
-
不是完全相同的问题,但它给出了
: _*符号,这是答案的关键(假设你可以list.map(func)!):stackoverflow.com/questions/1008783 -
如果我们传递整个列表元素并在被调用函数中处理所有这些元素,那么也可以通过将列表传递给函数并且函数可以遍历元素来完成,而无需需要特殊语法 :_* ,对吗?或者我可能错了,这种用法有什么好的理由吗?
-
@user3366706 这将是更传统的做事方法,是的。对我来说,这在处理期望生成的查询作为函数参数的 DSL 时非常方便 - 参数数量可变。