Entsprechend der Referenz werden Arrays auf folgende Weise erstellt:
Für Java primitive Typen gibt es verschiedene Arten IntArray, DoubleArrayetc. , die Speicherung unboxed Werte.
Sie werden mit den entsprechenden Konstruktoren und Factory-Funktionen erstellt:
val arrayOfZeros = IntArray(size) //equivalent in Java: new int[size]val numbersFromOne = IntArray(size) { it + 1 }
val myInts = intArrayOf(1, 1, 2, 3, 5, 8, 13, 21)
Das erste ähnelt dem in Java. Es erstellt lediglich ein primitives Array, das mit dem Standardwert gefüllt ist, z. B. Null für Int, falsefür Boolean.
Nicht primitive Arrays werden durch die Array<T>Klasse dargestellt, wobei Tes sich um den Elementtyp handelt.
Tkann immer noch in Java (eine Art primitiver sein Int, Boolean...), aber innen werden die Werte äquivalent zu Java verpackt werden Integer, Doubleund so weiter.
Array<Int>(size)kompiliert nicht. Dies liegt daran, dass Sie kein nicht nullbares Array erstellen können, ohne die Elemente anzugeben.
Kirill Rakhman
2
@KirillRakhman, danke für deine Bemerkung, das war ein versehentlicher Fehler. Fest.
Hotkey
1
In Kotlin ist das Erstellen eines IntArrays der Größe N einfach. Verwenden Sie IntArray(n)oder den entsprechenden Typ, wie in der Antwort des Hotkeys ausführlich beschrieben.
int
, aber für Objekte gibt es stackoverflow.com/questions/32679060/…Antworten:
Entsprechend der Referenz werden Arrays auf folgende Weise erstellt:
Für Java primitive Typen gibt es verschiedene Arten
IntArray
,DoubleArray
etc. , die Speicherung unboxed Werte.Sie werden mit den entsprechenden Konstruktoren und Factory-Funktionen erstellt:
val arrayOfZeros = IntArray(size) //equivalent in Java: new int[size] val numbersFromOne = IntArray(size) { it + 1 } val myInts = intArrayOf(1, 1, 2, 3, 5, 8, 13, 21)
Das erste ähnelt dem in Java. Es erstellt lediglich ein primitives Array, das mit dem Standardwert gefüllt ist, z. B. Null für
Int
,false
fürBoolean
.Nicht primitive Arrays werden durch die
Array<T>
Klasse dargestellt, wobeiT
es sich um den Elementtyp handelt.T
kann immer noch in Java (eine Art primitiver seinInt
,Boolean
...), aber innen werden die Werte äquivalent zu Java verpackt werdenInteger
,Double
und so weiter.Auch
T
sein kann sowohl nullable und nicht-null wieString
undString?
.Diese werden auf ähnliche Weise erstellt:
val nulls = arrayOfNulls<String>(size) //equivalent in Java: new String[size] val strings = Array(size) { "n = $it" } val myStrings = arrayOf("foo", "bar", "baz") val boxedInts = arrayOfNulls<Int>(size) //equivalent in Java: new Integer[size] val boxedZeros = Array(size) { 0 }
quelle
Array<Int>(size)
kompiliert nicht. Dies liegt daran, dass Sie kein nicht nullbares Array erstellen können, ohne die Elemente anzugeben.In Kotlin ist das Erstellen eines IntArrays der Größe N einfach. Verwenden Sie
IntArray(n)
oder den entsprechenden Typ, wie in der Antwort des Hotkeys ausführlich beschrieben.Wenn Sie ein Array mit fester Größe verwenden, können Sie Kotlin Destructuring verwenden
// Create fixed sized array val point = IntArray(2) // Access values directly val (x, y) = point
In diesem Fall
x
wird aus Index 0,y
aus Index 1 usw. entnommen .quelle