加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 如何通过元组参数最好的方法?

发布时间:2020-12-16 09:38:16 所属栏目:安全 来源:网络整理
导读:如何通过元组参数最好的方法? 例: def foo(...): (Int,Int) = ...def bar(a: Int,b: Int) = ... 现在我想将foo的输出传递给bar。这可以通过以下方式实现: val fooResult = foo(...)bar(fooResult._1,fooResult._2) 这种方法看起来有点丑陋,特别是当我们
如何通过元组参数最好的方法?

例:

def foo(...): (Int,Int) = ...

def bar(a: Int,b: Int) = ...

现在我想将foo的输出传递给bar。这可以通过以下方式实现:

val fooResult = foo(...)
bar(fooResult._1,fooResult._2)

这种方法看起来有点丑陋,特别是当我们处理n元组时,n>另外,我们必须将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())

也可以看看

> Applying a function to a tuple in Scala

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读