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 = trueAndere Erweiterungen