別のメソッドの引数リストの一部として、メソッド呼び出しのタプルの結果を送信しようとしています。
対象方法
def printResult(title: String, result: Int, startTime: Long, endTime: Long)
メソッドからの戻り、部分的な引数リスト
def sendAndReceive(send: Array[Byte]): (Int, Long, Long)
つまり、 を呼び出そうとしていますprintResult(String, (Int, Long, Long))
。メソッドの戻り値の署名がメソッド呼び出しと一致する場合、使用できたはずです
(printResult _).tupled(sendAndReceive(heartbeat))
これにより、構文エラーが発生します
printresult("Hi", Function.tupled(sendAndReceive(heartbeat))
回避策
タプルを手動で解凍してから、メソッドを呼び出すときにそれを使用することに頼っています
val tuple = sendAndReceive(heartbeat)
printResult("Heartbeat only", tuple._1, tuple._2, tuple._3)
引数リストの一部としてタプルをアンパックして送信するよりエレガントな方法はありますか?
参考文献
タプルをパラメーター リストとして使用してメソッドを呼び出す