Swift-Arrays

Swift-Arrays speichern mehrere Werte desselben Typs in einer geordneten Liste. Derselbe Wert kann an verschiedenen Positionen in einem Array mehrfach vorkommen.

Swift-Arrays erzwingen eine Typprüfung für Elemente; wenn die Typen abweichen, wird ein Fehler gemeldet. Swift-Arrays sollten eine Form wie Array<Element> haben, wobei Element der einzige zulässige Datentyp im Array ist.

Wenn du ein Array erstellst und es einer Variablen zuweist, ist die erstellte Sammlung veränderbar. Das bedeutet, dass du nach dem Erstellen des Arrays die Elemente im Array ändern kannst, indem du sie hinzufügst, entfernst oder modifizierst. Wenn du ein Array einer Konstanten zuweist, ist das Array unveränderlich, und sowohl die Größe als auch die Inhalte des Arrays können nicht geändert werden.


Arrays erstellen

Wir können die Initialisierer-Syntax verwenden, um ein leeres Array eines bestimmten Datentyps zu erstellen:

var someArray = [SomeType]()

Das Folgende ist die Syntax zum Erstellen eines Arrays mit einer initialisierten Größe:

var someArray = [SomeType](repeating: InitialValue, count: NumbeOfElements)

Das folgende Beispiel erstellt ein Array vom Typ Int mit einer Anzahl von 3 und einem Anfangswert von 0:

var someInts = [Int](repeating: 0, count: 3)

Das folgende Beispiel erstellt ein Array mit drei Elementen:

var someInts:[Int] = [10, 20, 30]

Zugriff auf Arrays

Wir können auf die Elemente eines Arrays anhand des Array-Index zugreifen, mit der folgenden Syntax:

var someVar = someArray[index]

Der Index beginnt bei 0; das heißt, Index 0 entspricht dem ersten Element, Index 1 entspricht dem zweiten Element, und so weiter.

Anhand des folgenden Beispiels können wir lernen, wie man Arrays erstellt, initialisiert und auf sie zugreift:

import Cocoa

var someInts = [Int](repeating: 10, count: 3)

var someVar = someInts[0]

print( "第一个元素的值 \(someVar!)" )
print( "第二个元素的值 \(someInts[1]!)" )
print( "第三个元素的值 \(someInts[2]!)" )

Die Ausgabe der obigen Programmausführung ist:

第一个元素的值 10
第二个元素的值 10
第三个元素的值 10

Arrays ändern

Sie können die Methode append() oder den Zuweisungsoperator += verwenden, um Elemente am Ende eines Arrays hinzuzufügen. Wie unten gezeigt, initialisieren wir ein Array und fügen Elemente hinzu:

import Cocoa

var someInts = [Int]()

someInts.append(20)
someInts.append(30)
someInts += [40]

var someVar = someInts[0]

print( "第一个元素的值 \(someVar)" )
print( "第二个元素的值 \(someInts[1])" )
print( "第三个元素的值 \(someInts[2])" )

Die Ausgabe der obigen Programmausführung ist:

第一个元素的值 20
第二个元素的值 30
第三个元素的值 40

Wir können auch den Wert von Array-Elementen über den Index ändern:

import Cocoa

var someInts = [Int]()

someInts.append(20)
someInts.append(30)
someInts += [40]

// 修改最后一个元素
someInts[2] = 50

var someVar = someInts[0]

print( "第一个元素的值 \(someVar)" )
print( "第二个元素的值 \(someInts[1])" )
print( "第三个元素的值 \(someInts[2])" )

Die Ausgabe der obigen Programmausführung ist:

第一个元素的值 20
第二个元素的值 30
第三个元素的值 50

Iterieren über Arrays

Wir können eine for-in-Schleife verwenden, um über alle Datenelemente im Array zu iterieren:

import Cocoa

var someStrs = [String]()

someStrs.append("Apple")
someStrs.append("Amazon")
someStrs.append("Example")
someStrs += ["Google"]

for item in someStrs {
   print(item)
}

Die Ausgabe der obigen Programmausführung ist:

Apple
Amazon
Example
Google

Wenn wir sowohl den Wert als auch den Index jedes Datenelements benötigen, können wir die Methode enumerated() von String verwenden, um über das Array zu iterieren. Ein Beispiel ist wie folgt:

import Cocoa

var someStrs = [String]()

someStrs.append("Apple")
someStrs.append("Amazon")
someStrs.append("Example")
someStrs += ["Google"]

for (index, item) in someStrs.enumerated() {
    print("在 index = \(index) 位置上的值为 \(item)")
}

Die Ausgabe der obigen Programmausführung ist:

在 index = 0 位置上的值为 Apple
在 index = 1 位置上的值为 Amazon
在 index = 2 位置上的值为 Example
在 index = 3 位置上的值为 Google

Arrays kombinieren

Wir können den Additionsoperator (+) verwenden, um zwei vorhandene Arrays desselben Typs zu kombinieren. Der Datentyp des neuen Arrays wird aus den Datentypen der beiden Arrays abgeleitet:

import Cocoa

var intsA = [Int](repeating: 2, count:2)
var intsB = [Int](repeating: 1, count:3)

var intsC = intsA + intsB

for item in intsC {
    print(item)
}

Die Ausgabe der obigen Programmausführung ist:

2
2
1
1
1

count-Eigenschaft

Wir können die count-Eigenschaft verwenden, um die Anzahl der Elemente im Array zu berechnen:

import Cocoa

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)

var intsC = intsA + intsB

print("intsA 元素个数为 \(intsA.count)")
print("intsB 元素个数为 \(intsB.count)")
print("intsC 元素个数为 \(intsC.count)")

Die Ausgabe der obigen Programmausführung ist:

intsA 元素个数为 2
intsB 元素个数为 3
intsC 元素个数为 5

isEmpty-Eigenschaft

Wir können die schreibgeschützte Eigenschaft isEmpty verwenden, um festzustellen, ob das Array leer ist; sie gibt einen booleschen Wert zurück:

import Cocoa

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)
var intsC = [Int]()

print("intsA.isEmpty = \(intsA.isEmpty)")
print("intsB.isEmpty = \(intsB.isEmpty)")
print("intsC.isEmpty = \(intsC.isEmpty)")

Die Ausgabe der obigen Programmausführung ist:

intsA.isEmpty = false
intsB.isEmpty = false
intsC.isEmpty = true
Andere Erweiterungen