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

Что канонический путь состоит в том, чтобы получить пустой массив в Scala? new Array[String](0) является слишком подробным.

61
задан Jacek Laskowski 26 May 2014 в 23:31
поделиться

3 ответа

Array[String]()

Вы можете опустить часть [String] , если она может быть выведена (например, methodThatAlwaysTakesAStringArray (Array ()) ).

78
ответ дан 24 November 2019 в 17:07
поделиться
val emptyArray =  Array.empty[Type]
65
ответ дан 24 November 2019 в 17:07
поделиться

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.

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

6
ответ дан 24 November 2019 в 17:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: