Scala: Auspacken Tupel als Teil der Argumentliste

Ich versuche zu senden, das Ergebnis einer Methode rufen Sie die Tupel, wie Teil der argument-Liste für eine andere Methode.

Ziel Methode

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

Rückkehr aus der Methode, partielle argument-Liste

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

In anderen Worten, ich bin versucht zu rufen printResult(String, (Int, Long, Long)). Wenn die Methode zurückgeben Signatur entspricht der Methode nennen, dann hätte ich

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

Diese Ergebnisse in der syntax-Fehler

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

Abhilfe

Ich bin Rückgriff auf manuell Auspacken des Tupels, dann verwenden Sie beim Aufruf der Methode

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

Gibt es eine elegantere Art und Weise zu entpacken und zu senden, der ein Tupel als Teil der argument-Liste?

Referenzen

Scala: ZERLEGUNG Tupel in der Funktion Argumente

Aufrufen einer Methode, mit der ein Tupel als parameter Liste

Wird tuple unpacking werden direkt unterstützt, in parameter-Listen in Scala?

Tupel Entpacken in den Map-Operationen

InformationsquelleAutor Hanxue | 2014-06-13
Schreibe einen Kommentar