我应该通过哪些渠道报告Scala中的错误?
根据另一个问题,我看起来像可变集合ListBuffer
和LinkedLis
中的错误。以下所有文件都在一个文件中:
object MyObject {
def myFunc() = {
var mutable = scala.collection.mutable.ListBuffer[Moo]
mutable += new Moo() // <--- GIVES ERROR AS DESCRIBED BELOW
}
}
class Moo() {
val hi:String = "Hello"
}
错误:Type mismatch, expected String, actual Moo
我是昏暗的,还是这实际上是一个错误?
感谢。
答案 0 :(得分:4)
将您的mutable声明替换为:
var mutable = scala.collection.mutable.ListBuffer[Moo]()
如果您尝试输入原始行(例如在控制台中),您将看到以下内容:
scala> var mutable = scala.collection.mutable.ListBuffer[Moo]
<console>:8: error: missing arguments for method apply in class GenericCompanion;
follow this method with `_' if you want to treat it as a partially applied function
var mutable = scala.collection.mutable.ListBuffer[Moo]
这意味着你的原始声明(没有parens)不是实例化容器的有效方式:在引擎盖下,它将被解释为一个不完整的函数调用。 (这有点令人困惑,考虑到在Scala中可以在许多其他情况下省略parens)。
答案 1 :(得分:1)
这就是为什么人们不喜欢+
将“字符串连接”视为附加组件。
由于没有人询问原始错误消息,我猜你真的有:
var mutable = scala.collection.mutable.ListBuffer
mutable += new Moo()
确实会产生错误。
scala> object X
defined object X
scala> var x = X
x: X.type = X$@2bad298f
scala> x += 1
<console>:10: error: type mismatch;
found : Int(1)
required: String
x += 1
^
或者,您可能没有尝试编译您发布的代码?
要回答你的问题,SO是提出这类问题的好地方。