2012-03-21 20 views
13

Jeśli mam klasę, że trwa krotki w jego konstruktora wśród innych wartości, takich jak:Jak zadeklarować alias typu w konstruktorze scala?

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

Jak używać abstrakcyjny typ dać krotki bardziej opisową nazwę w lekkiej mody (bez zawijania w nowej klasie):

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

nie jestem pewien, jak doprowadzić do typu alias w zakresie (lub jeśli jest to najlepsza rzecz do zrobienia):

type Dave = (Int, String) 

I Czy istnieje konwencja określająca, gdzie zdefiniować typy w ten sposób (czy też powinienem definiować klasy spraw i owijać wszystko ...)?

Rozumiem, że nie ma to sensu w wielu sytuacjach, ale czy naprawdę szukam tylko bardziej opisowej nazwy, czy to możliwe?

Dzięki!

+3

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

+0

Ach bardzo fajne, dzięki! –

+0

'aliasy typu' są o wiele lepszym terminem niż te, które udało mi się wymyślić ... –

Odpowiedz

6

Można użyć typu alias jak:

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

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

Tak, to było określenie zakresu typu pseudonimu, z którym miałem problemy, Jamil wskazał mi, żeby umieścić obiekty w komentarzu powyżej. –

+0

@MatthewPickering proszę zamknąć pytanie –

Powiązane problemy