2015-06-01 12 views
22

Obwohl das eine dumme Frage sein kann, kann ich nicht herausfinden, wie man eine Array-Literal-Gruppierung einiger String-Literale deklariert.String-Array-Literal? Wie programmiere ich es einfach?

Nehmen wir zum Beispiel an, ich möchte das Java-Array ["January", "February", "March"]. Wie kann ich dies in die neueste Kotlin Version (today, 12.0.0) übersetzen?

Was habe ich versucht?

stringArray("January", "February", "March") 

Antwort

73

können Sie verwenden arrayOf(), wie in

val literals = arrayOf("January", "February", "March") 
+2

einfach eine Anmerkung, wirklich Sie könnten dies tun: ** 'val Literale = arrayOf ("Januar", "Februar", "März")' ** aber Der Argumenttyp ** ** ist bereits explizit durch den Inhalt des Arrays, also ist es OK und kann weggelassen werden. – mruiz

+0

Oder verwenden Sie '[" Januar "," Februar "," März "]' – yooouuri

+2

@ yooouuri, das nur auf Anmerkungen erlaubt ist und nur in Kotlin 1.2 eingeführt wurde: https://kotlinlang.org/docs/reference/whatsnew12. html # Array-Literale-in-Annotationen – vman

0

arrayOf (was zu einem Java Array übersetzt) ​​ist eine Option. Dies gibt Ihnen einen veränderbaren, feste Größe Behälter der Elemente geliefert:

val arr = arrayOf("January", "February", "March") 

, das heißt, es gibt keine Möglichkeit, diese Sammlung zu erweitern mehr Elemente enthalten, aber Sie können seinen Inhalt mutieren.

Wenn anstelle von fester Größe, wünschen Sie eine variable Größe Sammlung Sie mit arrayListOf oder mutableArrayOf gehen kann (mutableArrayOfcurrently returns an ArrayList aber dies könnte irgendwann ändern):

val arr = arrayListOf("January", "February", "March")  
arr.add("April") 

Natürlich gibt es auch eine dritte Option, eine unveränderbare Sammlung fester Größe, List. Dies unterstützt keine Mutation seines Inhalts und kann nicht erweitert werden. Um eine zu erstellen, können Sie verwenden listOf:

val arr = listOf("January", "February", "March") 
Verwandte Themen