2012-03-21 26 views
13

Si tengo una clase que toma una tupla en su constructor entre otros valores tales como:¿Cómo declaras un alias de tipo en un constructor scala?

class Foo(a: Int, b: String, c: (Int, String)) 

¿Cómo se utiliza un tipo abstracto para dar la tupla un nombre más descriptivo de una forma ligera (sin envolviéndolo de una nueva clase):

class Foo(a: Int, b: String, c: Dave) 

no estoy seguro de cómo llevar un alias de tipo de alcance (o si este es el mejor que puede hacer):

type Dave = (Int, String) 

I s hay una convención para dónde definir los tipos de esta manera (o debería estar definiendo clases de casos y envolviendo todo ...)?

Agradezco que no tenga sentido en muchas situaciones, pero si realmente estoy buscando un nombre más descriptivo, ¿es posible?

Gracias!

+3

ver [esto] (http://stackoverflow.com/questions/3400734/package-objects) – Jamil

+0

Ah muy fresco, gracias! –

+0

'alias de tipo' es un término mucho mejor que el que pude imaginar ... –

Respuesta

6

Se puede usar un tipo alias como:

scala> type MyTuple = Tuple2[Int,String] 
defined type alias MyTuple 

scala> val x = new MyTuple(1, "one") 
x: (Int, String) = (1,one) 
+2

Sí, fue el alcance del alias tipo con el que tuve problemas, Jamil me indicó que incluyera objetos en el comentario anterior. –

+0

@MatthewPickering por favor cierre la pregunta –

Cuestiones relacionadas