Подтвердить что ты не робот

Канонический путь для пустого массива в Scala?

Каков канонический способ получить пустой массив в Scala? new Array[String](0) слишком многословно.

4b9b3361

Ответ 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.

Но это лишь странный угловой случай имплицитов. Вполне возможно, что эта проблема исчезнет в будущем.