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