Что канонический путь состоит в том, чтобы получить пустой массив в Scala? new Array[String](0)
является слишком подробным.
Array[String]()
Вы можете опустить часть [String]
, если она может быть выведена (например, methodThatAlwaysTakesAStringArray (Array ())
).
Array ()
в большинстве случаев будет достаточно. Он будет иметь тип Array [Nothing]
.
Если вы используете неявные преобразования, вам может потребоваться написать Array [Nothing] из-за Ошибка № 3474 :
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.
Но это только странный угловой случай имплицитов. Вполне возможно, что в будущем эта проблема исчезнет.