为什么在这种情况下"ArrayBuffer.from( "string" )"不起作用



在这段代码中,当使用sbt 1.3.8编译时,scalaVersion := "2.12.10"build.sbt中,我在.from(s)上得到一个错误,它说:

[error] /home.../Hello.scala:37:26: value from is not a member of object scala.collection.mutable.ArrayBuffer
[error]     val ab = ArrayBuffer.from(s)
^

源代码片段:

package example
import scala.collection.mutable.ArrayBuffer
object Test {
// yes this is a contrived example
def abFromStr(s:String) : ArrayBuffer[Char] = {
val ab = ArrayBuffer.from(s)
return ab
}
}

但当我这样做的时候,它是有效的:

scala> val ab = ArrayBuffer.from("test")
ab: scala.collection.mutable.ArrayBuffer[Char] = ArrayBuffer(t, e, s, t)

我的scalaREPL是2.13.1版本,所以我猜实现from的ArrayBuffer的"伴随对象"不在2.12.10版本中,但我在文档中找不到任何东西来证实这一点。我做错了什么?

[第2天scala noob]

正如我所怀疑的,Luis Miguel Mejía Suárez在上面的评论中指出的,ArrayBuffer上的.from方法在2.12.10中不可用。如果文档指出函数/对象等首次出现在哪个版本,我会很高兴。

最新更新