【发布时间】:2022-01-18 13:17:12
【问题描述】:
我认为我对 Scala 有很好的理解,直到我发现自己处于这个简单的场景中
sealed abstract case class Name private(name: String)
object Name {
def make(name: String): Option[Name] =
if (name.nonEmpty) Some(new Name(name) {}) else None
}
我的问题是关于班级的 private 修饰符。
如果我像这样使用它,一切正常,但如果我在开头移动 private 关键字,就像
private sealed abstract case class Name(name: String) 它无法编译,因为给了我以下错误
私有类名称作为类型的一部分逃脱其定义范围 选项[example.package.Name]
example.package 是我正在使用的包对象。
我想我需要澄清一下,因为我不确定这里发生了什么
【问题讨论】:
-
提示:什么前面的关键字是?
-
@JörgWMittag
what不是 scala 中的关键字,不知道你在说什么 -
Jörg 的意思是:关键字在哪里?前面是什么?这是给您的提示,以便您找到问题的答案。
-
这能回答你的问题吗? Private and protected constructor in Scala
标签: scala