tutorial software renault fungicida examples constructora blanquerna scala

software - ¿Manera canónica para Matriz vacía en Scala?



scala tutorial (4)

¿Cuál es la forma canónica de obtener una matriz vacía en Scala? new Array[String](0) es demasiado detallado.


Si el tipo de matriz es una de las primitivas, puede usar los accesos directos de scala.Array.

Por ejemplo, para una matriz de bytes sería:

val arr = Array.emptyByteArray

Esto es útil cuando el tipo no se puede inferir y desea permanecer menos detallado.


Array() será suficiente, la mayoría de las veces. Será del tipo Array[Nothing] .

Si usa conversiones implícitas, es posible que necesite escribir Array [Nothing], debido a Bug # 3474 :

def list[T](list: List[T]) = "foobar" implicit def array2list[T](array: Array[T]) = array.toList

Esto no funcionará:

list(Array()) => error: polymorphic expression cannot be instantiated to expected type; found : [T]Array[T] required: List[?] list(Array()) ^

Esta voluntad:

list(Array[Nothing]()) //Nothing ... any other type should work as well.

Pero este es solo un extraño caso de implicidades en la esquina. Es muy posible que este problema desaparezca en el futuro.


Array[String]()

Puede omitir la parte [String] si se puede inferir (por ejemplo, methodThatAlwaysTakesAStringArray( Array() ) ).


val emptyArray = Array.empty[Type]