【发布时间】:2018-10-08 22:58:22
【问题描述】:
当试图扩展一个具有具体定义的类时
trait logmsg
{
printmsg(msg : String) = println(msg)
}
class DimensionUtils extends logmsg {
printmsg("hello")
}
为什么repl会报如下错误:
**error**
defined trait logmsg
<console>:16: error: not found: value printmsg
printmsg("hello")
【问题讨论】:
-
这段代码是正确的。我猜你正在将代码粘贴到 REPL 中,如果你将第一个
{移动到与trait logmsg相同的行上,问题就会消失,以防止 REPL 将trait logmsg本身作为一个完整的定义。这是 Scala 程序员从不将{单独放在一行的原因之一。 (另一个是分号推断。) -
此外,寻找 scala 风格指南您应该具有以大写字母开头的特征。在 90% 的情况下,括号放在同一行,而不是新行。删除所有必要的行。您的代码可以有 7 行包含相同信息。