2010-04-30 6 views
36

Je souhaite créer une fonction scala qui retourne un tplle.Type de retour Scala pour les fonctions de tuple

je peux faire une fonction comme ceci:

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

et cela fonctionne très bien, mais maintenant, je veux dire au compilateur ce que je pense être de retour de la fonction au lieu d'utiliser la construction dans l'inférence de type (après tout, je n'ai aucune idée de ce qu'est un (1,"hello","world")).

+1

OK, les gens ... Je blâme le compilateur de ne pas me donner d'informations utiles. J'ai oublié de mettre le signe =, donc j'ai eu des tonnes d'erreurs. Si quelqu'un vient avec une réponse élaborée je vais l'accepter cependant, la manière correcte était: def tot: Tuple [Int, Chaîne, Chaîne] = (1, "Bonjour", "monde") – Felix

+0

Tuple3 [.. .] même, n'oubliez pas de mettre le # d'éléments dans le nom de la classe (max 22ish) – Felix

Répondre

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

Le compilateur interprétera le type (Int, String, String) comme Tuple3[Int, String, String]

1

En outre, vous pouvez créer un alias de type si vous êtes fatigué d'écrire (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") 
Questions connexes