2012-03-21 14 views
13

Ben gibi diğer değerler arasında onun kurucu bir demet alır bir sınıf varsa: sarma olmadan (ı soyut bir türü nasıl kullanırımBir scala kurucusunda tür takma adını nasıl bildirirsiniz?

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

tuple hafif şekilde daha açıklayıcı bir ad vermek için) yeni bir sınıfta:

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

ben kapsamında bir tip takma getirmek (veya nasıl emin değilim bu yapılacak en iyi şey) ise:

type Dave = (Int, String) 

ben Bu şekilde türleri tanımlamak için bir kongre var mı (ya da vaka sınıflarını tanımlamalı ve her şeyi sarmalı mıyım?)?

Bir çok durumda anlam ifade etmediğini, ancak gerçekten sadece daha açıklayıcı bir isim aradığımı kabul ediyorum.

Teşekkürler!

+3

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

+0

Ah çok serin, teşekkürler! –

+0

'type aliases' ile başa çıkmayı başardığımdan çok daha iyi bir terim var ... –

cevap

6

Sen gibi bir tür takma kullanabilirsiniz: bkz

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

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

Evet, sorun yaşadığım tür takma adın kapsamıydı, Jamil yukarıda yazılanları paketlemek için bana işaret etti. –

+0

@MatthewPickering lütfen yakın soru –