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

Scala:开启元组作为参数列表的一部分

发布时间:2020-12-16 21:33:53 所属栏目:安全 来源:网络整理
导读:我试图发送一个方法调用的元组的结果,作为另一个方法的参数列表的一部分. 目标方法 def printResult(title: String,result: Int,startTime: Long,endTime: Long) 从方法返回,部分参数列表 def sendAndReceive(send: Array[Byte]): (Int,Long,Long) 换句话说,
我试图发送一个方法调用的元组的结果,作为另一个方法的参数列表的一部分.

目标方法

def printResult(title: String,result: Int,startTime: Long,endTime: Long)

从方法返回,部分参数列表

def sendAndReceive(send: Array[Byte]): (Int,Long,Long)

换句话说,我试图调用printResult(String,(Int,Long)).如果方法返回签名匹配方法调用,那么我可以使用

(printResult _).tupled(sendAndReceive(heartbeat))

这会导致语法错误

printresult("Hi",Function.tupled(sendAndReceive(heartbeat))

解决方法

我正在手动解包元组,然后在调用该方法时使用它

val tuple = sendAndReceive(heartbeat)
printResult("Heartbeat only",tuple._1,tuple._2,tuple._3)

有没有更优雅的方式来解包和发送一个元组作为参数列表的一部分?

参考

Scala: Decomposing tuples in function arguments

Invoke a method using a tuple as the parameter list

Will tuple unpacking be directly supported in parameter lists in Scala?

Tuple Unpacking in Map Operations

解决方法

您可以执行以下操作:

val (result,startTime,endTime) = sendAndReceive(heartbeat)
printResult("Heartbeat only",result,endTime)

(编辑:李大同)

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

    推荐文章
      热点阅读