将伴随对象应用于别名类型

Kar*_*lek 3 scala companion-object

我想让我的Scala代码更具可读性,因此我为所有参数化类型添加了自定义类型.

所以我在包对象中,为简单起见,

type IntSeq = Seq[Int]
Run Code Online (Sandbox Code Playgroud)

但是,现在我不能apply在伴侣对象上做简单.来自REPL:

scala> IntSeq(1, 2, 3)
<console>:8: error: not found: value IntSeq
              IntSeq(1, 2, 3)
              ^
Run Code Online (Sandbox Code Playgroud)

该怎么办?

(只是为了确保:我的实际别名对象比这更复杂Seq[Int])

编辑:有一个类似的问题 - Scala类型别名包括伴侣对象[初学者]

在这个问题上,有两个回复,两个都不起作用.

一个是使用apply定义我的自定义对象,但我不知道如何在我的情况下这样做,再加上它有点冗长.

另一个 - 写入val IntSeq = Seq会产生错误

警告:先前定义的特征Seq不是值IntSeq的伴侣.同伴必须一起定义; 您可能希望使用:粘贴模式.

Kar*_*lek 5

第二个错误只是因为REPL的运行方式.在REPL中,必须使用:paste模式一起定义伴侣; 但是,在包对象中,这不是问题.

所以,另一种方法 - 写val IntSeq = Seq- 实际上会起作用.