我正在尝试学习scala类型。 我正在下面的网站上学习。
在主题下。
统一类型系统 - Any
,AnyRef
,AnyVal
class Person
val allThings = ArrayBuffer[Any]()
val myInt = 42 // Int, kept as low-level `int` during runtime
allThings += myInt // Int (extends AnyVal)
// has to be boxed (!) -> becomes java.lang.Integer in the collection (!)
allThings += new Person() // Person (extends AnyRef), no magic here
当我在scala工作表中尝试上面的代码时。 我在第二行遇到错误。
val allThings = ArrayBuffer[Any]() as value error: value ArrayBuffer
请在scala工作表中找到我的代码。
object test1 {
println("Welcome to the Scala worksheet")
class Person
val allThings = ArrayBuffer[Any]()
val myInt = 42 // Int, kept as low-level `int` during runtime
allThings += myInt // Int (extends AnyVal)
// has to be boxed (!) -> becomes java.lang.Integer in the collection (!)
allThings += new Person() // Person (extends AnyRef), no magic here
}
请帮帮我。
谢谢和问候,
答案 0 :(得分:2)
import
ArrayBuffer
使用FQCN。<强> FQCN 强>
ArrayBuffer
不是您的某个类,它是Scala库中的class
,它位于scala.collection.mutable.ArrayBuffer
。 scala.collection.mutable
不是默认导入的软件包之一:
因此,为了使用它,您需要使用完全限定的类名:
val allThings = scala.collection.mutable.ArrayBuffer[Any]()
<强>导入强>
您可以告诉Scala您希望scala.collection.mutable.ArrayBuffer
简称为ArrayBuffer
,这称为导入。
您需要在代码之前添加以下代码:
import scala.collection.mutable.ArrayBuffer
然后,无论何时使用ArrayBuffer
,编译器都将使用scala.collection.mutable.ArrayBuffer
。