sep*_*p2k 79
Array[String]()
Run Code Online (Sandbox Code Playgroud)
[String]如果可以推断(例如methodThatAlwaysTakesAStringArray( Array() )),您可以省略该部分.
Array()大多数时候都足够了.它将是类型Array[Nothing].
如果使用隐式转换,由于Bug#3474,您可能需要实际编写Array [Nothing] :
def list[T](list: List[T]) = "foobar"
implicit def array2list[T](array: Array[T]) = array.toList
Run Code Online (Sandbox Code Playgroud)
这不起作用:
list(Array()) => error: polymorphic expression cannot be instantiated to expected type;
found : [T]Array[T]
required: List[?]
list(Array())
^
Run Code Online (Sandbox Code Playgroud)
这将:
list(Array[Nothing]()) //Nothing ... any other type should work as well.
Run Code Online (Sandbox Code Playgroud)
但这只是隐含的一个奇怪的角落案例.这个问题很可能在将来消失.
如果数组类型是基元之一,则可以使用 scala.Array 中的快捷方式。
例如,对于字节数组,它将是:
val arr = Array.emptyByteArray
Run Code Online (Sandbox Code Playgroud)
当无法推断类型并且您希望保持不那么冗长时,这非常有用。