Scala中如何使用'toArray()'将栈转数组?

In Scala, how to use 'toArray()' to turn a stack to a array?

我在Scala中使用了immutable.Stack的'toArray' api,如下面的代码,但是报错

var stack1 = mutable.Stack[Long]()
val array = stack1.toArray();

它报告 'Cannot resolve reference toArray with such signature' 关于 toArray "unspecified value parameters" 关于 toArray() 的 '()' !

An image

TLDR

正确的方法是不带括号调用toArray

说明

toArray 函数具有以下签名(您可以使用 tab 来扩展 Scala repl 中的签名):

scala> stack1.toArray
   def toArray[B >: Long](implicit evidence: 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()

第一种情况,参数由编译器代入。在第二种情况下显式传递参数。