我使用 immutable.Stack 的 'toArray' api,就像 Scala 中的以下代码一样,但它报告错误。
var stack1 = mutable.Stack[Long]()
val array = stack1.toArray();
它报告关于 toArray 的“无法解析具有此类签名的 toArray 引用”和关于 toArray() 的“()”的“未指定的值参数”!
正确的方法是toArray
不带括号的调用
toArray
函数具有以下签名(您可以tab在 Scala repl 中使用扩展签名):
scala> stack1.toArray
def toArray[B >: Long](implicit evidence$1: scala.reflect.ClassTag[B]): Array[B]
它需要ClassTag
隐式参数:
scala> stack1.toArray
res2: Array[Long] = Array()
scala> stack1.toArray(scala.reflect.classTag[Long])
res3: Array[Long] = Array()
在第一种情况下,参数被编译器替换。在第二种情况下,参数显式传递。