在Scala中获取空数组的规范方法是什么? new Array[String](0)
过于冗长。
答案 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
当无法推断出类型并希望保持较简洁时,这非常有用。