Swift - Strukturen
Swift 4 bietet einen flexiblen Baustein für die Verwendung von Konstrukten als Strukturen. Durch einmaliges Verwenden dieser Strukturen können Konstruktmethoden und -eigenschaften definiert werden.
Im Gegensatz zu C und Ziel C.
Für die Struktur müssen keine Implementierungsdateien und keine Schnittstelle erforderlich sein.
Struktur ermöglicht es uns, eine einzelne Datei zu erstellen und ihre Schnittstelle automatisch auf andere Blöcke zu erweitern.
In Structure werden die Variablenwerte kopiert und in nachfolgenden Codes übergeben, indem eine Kopie der alten Werte zurückgegeben wird, sodass die Werte nicht geändert werden können.
Syntax
Structures are defined with a 'Struct' Keyword.
struct nameStruct {
Definition 1
Definition 2
---
Definition N
}
Definition einer Struktur
Angenommen, wir müssen auf den Schülerdatensatz zugreifen, der Noten von drei Fächern enthält, und die Gesamtzahl der drei Fächer ermitteln. Hier wird markStruct verwendet, um eine Struktur mit drei Markierungen als Datentyp 'Int' zu initialisieren.
struct MarkStruct {
var mark1: Int
var mark2: Int
var mark3: Int
}
Zugriff auf die Struktur und ihre Eigenschaften
Auf die Mitglieder der Struktur wird über ihren Strukturnamen zugegriffen. Die Instanzen der Struktur werden mit dem Schlüsselwort 'let' initialisiert.
struct studentMarks {
var mark1 = 100
var mark2 = 200
var mark3 = 300
}
let marks = studentMarks()
print("Mark1 is \(marks.mark1)")
print("Mark2 is \(marks.mark2)")
print("Mark3 is \(marks.mark3)")
Wenn wir das obige Programm auf einem Spielplatz ausführen, erhalten wir das folgende Ergebnis:
Mark1 is 100
Mark2 is 200
Mark3 is 300
Auf die Noten der Schüler wird über den Strukturnamen 'studentMarks' zugegriffen. Die Strukturelemente werden als mark1, mark2, mark3 mit ganzzahligen Typwerten initialisiert. Dann wird die Struktur studentMarks () mit dem Schlüsselwort 'let' an die 'Marks' übergeben. Im Folgenden enthalten 'Markierungen' die Strukturelementwerte. Jetzt werden die Werte gedruckt, indem mit '.' Auf die Strukturelementwerte zugegriffen wird. mit seinen initialisierten Namen.
struct MarksStruct {
var mark: Int
init(mark: Int) {
self.mark = mark
}
}
var aStruct = MarksStruct(mark: 98)
var bStruct = aStruct // aStruct and bStruct are two structs with the same value!
bStruct.mark = 97
print(aStruct.mark) // 98
print(bStruct.mark) // 97
Wenn wir das obige Programm auf einem Spielplatz ausführen, erhalten wir das folgende Ergebnis:
98
97
Best Usage Practices von Strukturen
Die Sprache Swift 4 bietet die Funktionalität, Strukturen als benutzerdefinierte Datentypen zum Erstellen der Funktionsblöcke zu definieren. Die Instanzen der Struktur werden zur weiteren Bearbeitung durch ihren Wert an die definierten Blöcke übergeben.
Notwendigkeit, Strukturen zu haben
Einfache Datenwerte kapseln.
Kopieren der gekapselten Daten und der zugehörigen Eigenschaften nach "Werten" und nicht nach "Referenzen".
Struktur zum 'Kopieren' und 'Referenz'.
Strukturen in Swift 4 übergeben ihre Mitglieder mit ihren Werten und nicht mit ihren Referenzen.
struct markStruct {
var mark1: Int
var mark2: Int
var mark3: Int
init(mark1: Int, mark2: Int, mark3: Int) {
self.mark1 = mark1
self.mark2 = mark2
self.mark3 = mark3
}
}
var marks = markStruct(mark1: 98, mark2: 96, mark3:100)
print(marks.mark1)
print(marks.mark2)
print(marks.mark3)
Wenn wir das obige Programm auf einem Spielplatz ausführen, erhalten wir das folgende Ergebnis:
98
96
100
Ein anderes Beispiel
struct markStruct {
var mark1: Int
var mark2: Int
var mark3: Int
init(mark1: Int, mark2: Int, mark3: Int) {
self.mark1 = mark1
self.mark2 = mark2
self.mark3 = mark3
}
}
var fail = markStruct(mark1: 34, mark2: 42, mark3: 13)
print(fail.mark1)
print(fail.mark2)
print(fail.mark3)
Wenn wir das obige Programm auf einem Spielplatz ausführen, erhalten wir das folgende Ergebnis:
34
42
13
Die Struktur 'markStruct' wird zuerst mit ihren Elementen mark1, mark2 und mark3 definiert. Jetzt werden die Variablen der Elementklassen so initialisiert, dass sie ganzzahlige Werte enthalten. Anschließend wird die Kopie der Strukturelemente mit dem Schlüsselwort 'self' erstellt. Sobald die Kopie der Strukturelemente erstellt wurde, wird der Strukturblock mit seinen Parametermarken an die Variable 'Marks' übergeben, die nun die Schülermarkierungen enthält. Dann werden die Markierungen als 98, 96, 100 gedruckt. Im nächsten Schritt für dieselben Strukturelemente wird eine andere Instanz mit dem Namen "Fehler" verwendet, um dieselben Strukturelemente mit unterschiedlichen Markierungen zu kennzeichnen. Dann werden die Ergebnisse jetzt als 34, 42, 13 gedruckt. Dies erklärt deutlich, dass Strukturen eine Kopie der Elementvariablen haben und die Elemente dann an ihre kommenden Funktionsblöcke übergeben.