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() 的 '()' !
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()
第一种情况,参数由编译器代入。在第二种情况下显式传递参数。
我在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() 的 '()' !
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()
第一种情况,参数由编译器代入。在第二种情况下显式传递参数。