Scala中空数组的规范方法?

时间:2010-06-22 14:14:52

标签: scala

在Scala中获取空数组的规范方法是什么? new Array[String](0)过于冗长。

4 个答案:

答案 0 :(得分:74)

Array[String]()

如果可以推断[String]部分,则可以省略methodThatAlwaysTakesAStringArray( Array() )部分。

答案 1 :(得分:62)

val emptyArray =  Array.empty[Type]

答案 2 :(得分:6)

大多数时候,

Array()就足够了。它的类型为Array[Nothing]

如果使用隐式转换,由于Bug #3474,您可能需要实际编写Array [Nothing]:

def list[T](list: List[T]) = "foobar"
implicit def array2list[T](array: Array[T]) = array.toList

这不起作用:

list(Array()) => error: polymorphic expression cannot be instantiated to expected type;
    found   : [T]Array[T]
    required: List[?]
        list(Array())
                  ^

这将:

list(Array[Nothing]()) //Nothing ... any other type should work as well.

但这只是隐含的一个奇怪的角落案例。这个问题很有可能在将来消失。

答案 3 :(得分:0)

如果数组类型是其中一个基元,则可以使用scala.Array中的快捷方式。

例如,对于字节数组,它将是:

val arr = Array.emptyByteArray

当无法推断出类型并希望保持较简洁时,这非常有用。