2010-04-30 17 views
36

Desidero creare una funzione scala che restituisca una scala tuple.Tipo di ritorno Scala per le funzioni di tupla

posso fare una funzione come questa:

def foo = (1,"hello","world") 

e questo funziona bene, ma ora voglio dire al compilatore che cosa mi aspetto di essere restituito dalla funzione invece di utilizzare il costruito nel inferenza di tipo (Dopotutto, non ho idea di cosa sia un (1,"hello","world")).

+1

OK, gente ... Do la colpa al compilatore per non avermi dato alcuna informazione utile. Ho dimenticato di inserire il segno =, quindi ho ricevuto tonnellate di errori. Se qualcuno viene fornito con una risposta elaborata, lo accetto comunque, il modo corretto era: def foo: Tupla [Int, String, String] = (1, "ciao", "mondo") – Felix

+0

Tuple3 [.. .] anche, ricorda di mettere il numero di elementi nel nome della classe (max 22ish) – Felix

risposta

62
def foo : (Int, String, String) = (1, "Hello", "World") 

Il compilatore interpreterà il tipo (Int, String, String) come Tuple3[Int, String, String]

1

Inoltre, è possibile creare un tipo alias se vi stancate di scrivere (Int, String, String)

type HelloWorld = (Int,String,String) 
... 

def foo : HelloWorld = (1, "Hello", "World") 
/// and even this is you want to make it more OOish 
def bar : HelloWorld = HelloWorld(1, "Hello", "World")