Qual è il modo canonico per ottenere un array vuoto in Scala? new Array[String](0)
è troppo prolisso.Modo canonico per la matrice vuota in Scala?
risposta
Array[String]()
Puoi lasciare fuori la parte [String]
se si può dedurre (ad esempio methodThatAlwaysTakesAStringArray(Array())
).
Array()
sarà sufficiente, la maggior parte delle volte. Sarà del tipo Array[Nothing]
.
Se si utilizza conversioni implicite, potrebbe essere necessario scrivere in realtà Array [Niente], a causa di Bug #3474:
def list[T](list: List[T]) = "foobar"
implicit def array2list[T](array: Array[T]) = array.toList
Questo non funziona:
list(Array()) => error: polymorphic expression cannot be instantiated to expected type;
found : [T]Array[T]
required: List[?]
list(Array())
^
Questo sarà:
list(Array[Nothing]()) //Nothing ... any other type should work as well.
Ma questo è solo un caso angoscioso di impliciti. È possibile che questo problema scompaia in futuro.
val emptyArray = Array.empty[Type]
Questo ha funzionato anche per me quando il tipo poteva essere dedotto: Array.empty –
Se il tipo di matrice è uno dei primitivi, è possibile utilizzare le scorciatoie da scala.Array.
Ad esempio per un array di byte sarebbe:
val arr = Array.emptyByteArray
Questo è utile quando il tipo non si può dedurre e si desidera rimanere meno prolissa.
- 1. modo canonico per randomizzare un NSArray nell'obiettivo C
- 2. Esiste un modo canonico per "risolvere" un IEnumerable "dinamico"?
- 3. Scala - converti matrice [stringa] in matrice [doppia]
- 4. Modo canonico per definire l'iteratore di output in avanti
- 5. Matrice di doppi in scala
- 6. URL canonico in Analytics
- 7. Modo canonico per firmare (e verificare) un file ELF?
- 8. Modo canonico per definire gli oggetti della pagina nel goniometro
- 9. Come creare una matrice vuota in kotlin?
- 10. Perl come verificare se la matrice è ancora vuota?
- 11. Qual è il modo canonico per tagliare una stringa in Ruby senza creare una nuova stringa?
- 12. Posso leggere da stdin in modo non canonico?
- 13. Modo corretto per inizializzare la matrice dinamica in C++
- 14. Errore di matrice vuota di handle VBA
- 15. GetCustomAttributes per un valore enum restituisce una matrice vuota
- 16. Come si ordina una matrice in Scala?
- 17. Modo canonico in Python per aggiungere o recuperare le meta informazioni da/per docstring?
- 18. Un modo per usare la codifica Scala per iOS?
- 19. In Erlang, c'è un modo per creare una funzione vuota?
- 20. Cos'è un "percorso canonico"?
- 21. La deforestazione in collezioni Scala
- 22. Codice POST HTTP canonico?
- 23. significato della matrice vuota in angularJS dichiarazione modulo
- 24. Perché non si può inizializzare una matrice vuota in Swift?
- 25. Qual è il modo canonico per unire le stringhe in un elenco?
- 26. Scala: Alla ricerca di un bel modo per dividere una matrice
- 27. Qual è il modo canonico per inserire un timeout di lettura su uno streaming in PHP?
- 28. Come implementare un mapping canonico in Java?
- 29. C# Nome file canonico
- 30. C'è un modo per ripristinare la scala della finestra in modo dinamico a 1,0
Questa versione sembra creare una sequenza vuota e chiamare 'Array.apply()' in quella sequenza. Quindi non è esattamente lo stesso di 'new Array [String] (0)'. –
Puoi spiegare perché è preferibile su 'Array.empty [String]'? Trovo la risposta di sotto superiore, poiché è meno ambigua quando viene letta. – Shuklaswag