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

powertoolsteam 阅读:13 2024-11-01 17:39:52 评论:0

我想让我的 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 type alias including companion object [beginner]

关于那个问题,有两个回复,都无效。

一个是用 apply 定义我的自定义对象,但我不确定在我的情况下该怎么做,而且它有点冗长。

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

warning: previously defined trait Seq is not a companion to value IntSeq. Companions must be defined together; you may wish to use :paste mode for this.

请您参考如下方法:

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

因此,另一种方法 - 编写 val IntSeq = Seq - 确实可行。


标签:Scala
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号