Каков канонический способ получить пустой массив в Scala? new Array[String](0)
слишком многословно.
Канонический путь для пустого массива в Scala?
Ответ 1
Array[String]()
Вы можете оставить часть [String]
, если она может быть выведена (например, methodThatAlwaysTakesAStringArray( Array() )
).
Ответ 2
val emptyArray = Array.empty[Type]
Ответ 3
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.
Но это лишь странный угловой случай имплицитов. Вполне возможно, что эта проблема исчезнет в будущем.