3

Scala コードを読みやすくしたいので、すべてのパラメーター化された型にカスタム型を追加しました。

だから私は簡単にするためにパッケージオブジェクトに持っています、

type IntSeq = Seq[Int]

applyしかし、今ではコンパニオンオブジェクトを単純にすることはできません。REPL から:

scala> IntSeq(1, 2, 3)
<console>:8: error: not found: value IntSeq
              IntSeq(1, 2, 3)
              ^

何をすべきか?

(念のため: 私の実際のエイリアス オブジェクトはより複雑ですSeq[Int])

編集:同様の質問があります-コンパニオンオブジェクトを含むScala型エイリアス[初心者]

その質問には 2 つの回答があり、どちらも機能していません。

1 つは、apply を使用してカスタム オブジェクトを定義することですが、私の場合はそれを行う方法がわかりません。さらに、少し冗長です。

もう一方 - 書き込むval IntSeq = Seqとエラーが発生します

警告: 以前に定義された特性 Seq は、値 IntSeq のコンパニオンではありません。コンパニオンはまとめて定義する必要があります。これには :paste モードを使用することをお勧めします。

4

1 に答える 1

5

2 番目のエラーは、REPL の動作方法が原因です。:pasteREPL では、モードを使用してコンパニオンを一緒に定義する必要があります。ただし、パッケージ オブジェクトでは、それは問題ではありません。

したがって、もう 1 つのアプローチ (書き込みval IntSeq = Seq) は実際に機能します。

于 2012-07-08T01:36:43.540 に答える