2010-04-30 13 views
36

Ich möchte eine Scala-Funktion machen, die ein Scala-Tupel zurückgibt.Scala Return-Typ für Tupel-Funktionen

Ich kann so eine Funktion tun:

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

und das wird funktionieren, aber jetzt will ich den Compiler sagen, was ich erwarte von der Funktion zurückgegeben werden, anstatt die in Typinferenz gebaut des Verwendens (immerhin habe ich keine Ahnung was ein (1,"hello","world") ist).

+1

OK, Leute ... Ich mache den Compiler dafür verantwortlich, dass er mir keine nützlichen Informationen gegeben hat. Ich habe vergessen, das = Zeichen zu setzen, daher habe ich Tonnen von Fehlern bekommen. Wenn jemand mit einer ausgeklügelten Antwort kommt, werde ich es aber akzeptieren, der richtige Weg war: def foo: Tupel [Int, String, String] = (1, "Hallo", "Welt") – Felix

+0

Tuple3 [.. .] sogar, denken Sie daran, die Anzahl der Elemente in den Klassennamen (max 22ish) zu setzen – Felix

Antwort

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

Der Compiler wird den Typ (Int, String, String) als Tuple3[Int, String, String]

1

auch interpretieren, können Sie eine Art Alias ​​erstellen, wenn Sie schreiben, müde werden (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")