2012-03-21 28 views
13

私のような他の値のうち、そのコンストラクタにタプルをとるクラスがある場合:型エイリアスをスカラーコンストラクタでどのように宣言しますか?

私はそれをラップすることなく、タプルに軽量形(で、より説明的な名前を与えることを抽象型を使用するにはどうすればよい
class Foo(a: Int, b: String, c: (Int, String)) 

を)新しいクラス:

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

私がスコープ内にタイプエイリアスを持参するかどうかはわかりません(またはこれを行うための最善のことである場合):

type Dave = (Int, String) 

私はこのように型を定義する場所はどこですか(あるいは、私は大文字小文字のクラスを定義して、すべてをラップする必要があります...)?

多くの状況で理にかなっていないことは分かりますが、実際にはわかりやすい名前を探していれば可能でしょうか?

ありがとうございます!

+3

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

+0

ああ非常にクールな、感謝を参照してください! –

+0

「タイプエイリアス」は私が思いついたよりもはるかに良い言葉です... –

答えて

6

次のようなタイプの別名を使用することができます。

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

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

はい、それは私が問題を抱えていたタイプエイリアスのスコープであり、Jamilは上記のコメントにオブジェクトをパッケージ化するように指摘しました。 –

+0

@MatthewPickeringご質問を閉じる –

関連する問題