我在 Scala 中使用了 immutable.Stack 的 'toArray' api,如下面的代码,但它报告错误。
var stack1 = mutable.Stack[Long]()
val array = stack1.toArray();
它报告关于 toArray 的“无法解析具有此类签名的对Array 的引用” 以及关于 toArray() 的 '()' 的“未指定值参数”!
最佳答案
TLDR
正确的方法是调用不带括号的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()
在第一种情况下,参数被编译器替换。在第二种情况下,参数显式传递。
关于scala - Scala中如何使用 'toArray()'将栈转为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36006512/