如何以最佳方式传递元组参数?
Example:
def foo(...): (Int, Int) = ...
def bar(a: Int, b: Int) = ...
现在我想传递的输出foo
to bar
。这可以通过以下方式实现:
val fooResult = foo(...)
bar(fooResult._1, fooResult._2)
这种方法看起来有点难看,尤其是当我们处理一个n
-元组与n > 2
。另外,我们必须将 foo 的结果存储在一个额外的值中,因为否则foo
必须使用多次执行bar(foo._1, foo._2)
.
有没有更好的方法来传递元组作为参数?
有一个特殊的tupled
每个函数都可用的方法:
val bar2 = (bar _).tupled // or Function.tupled(bar _)
bar2
需要一个元组(Int, Int)
(与...一样bar
论据)。现在你可以说:
bar2(foo())
如果你的方法实际上是函数(注意val
关键字)语法更令人愉快:
val bar = (a: Int, b: Int) => //...
bar.tupled(foo())
See also
- 如何将函数应用于元组? https://stackoverflow.com/questions/1987820
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)