2010-04-30 22 views
36

Quiero hacer una función scala que devuelva una tila scala.Tipo de retorno Scala para funciones tuple

que pueda hacer una función como esta:

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

y esto funciona bien, pero ahora quiero decirle al compilador lo que espero ser devuelto por la función en lugar de utilizar el construido en la inferencia de tipos (después de todo, no tengo idea de qué es (1,"hello","world")).

+1

OK, amigos ... culpo al compilador por no darme ninguna información útil. Olvidé poner el signo =, por lo tanto, obtuve un montón de errores. Si alguien viene con una respuesta elaborada lo aceptaré, la forma correcta fue: def foo: Tuple [Int, String, String] = (1, "hello", "world") – Felix

+0

Tuple3 [.. .] incluso, recuerde poner el n. ° de elementos en el nombre de clase (max 22ish) – Felix

Respuesta

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

El compilador interpretará el tipo (Int, String, String) como Tuple3[Int, String, String]

1

Además, puede crear un alias de tipo si se cansa de escribir (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") 
Cuestiones relacionadas