Die Anleitung zu Swift Struct
1. Was ist Struct ?
In Swift ist Struct (structure) eine besondere Wert. Es erstellt eine Variable um viele einzelnen Werte zu speichern. Und diese Wert hat die Beziehungen zu einander
Zum Beispiel: Die Information von einem Arbeitnehmer schließt ... ein:
- Die Code des Arbeitnehmer
- Der Name des Arbeitnehmer
- Die Position
Sie können 3 Variable erstellen um die oben Information von Arbeitnehmer zu speichern. Allerdings Sie können ein Struct erstellen um die 3 obengemeinten Informationen in einer einzigen Variable zu speichern
Swift benutzt das Schlüsselwort struct um ein Struct.zu melden
Employee.swift
import Foundation
struct Employee {
var empNumber:String
var empName:String
var position:String
// Constructor.
init(empNumber:String, empName:String, position:String) {
self.empNumber = empNumber;
self.empName = empName;
self.position = position;
}
}
Das Beispiel über die Benutzung vom Struct:
EmployeeTest.swift
import Foundation
func test_EmployeeStruct() {
// Eine Variable mit dem Typ vom struct Employee erstellen.
let john = Employee(empNumber:"E01",empName: "John",position: "CLERK")
print("Emp Number: " + john.empNumber)
print("Emp Name: " + john.empName)
print("Emp Position: " + john.position)
}
Die File main.swift ändern
main.swift
import Foundation
test_EmployeeStruct()
Zum Beispiel
Emp Number: E01
Emp Name: John
Emp Position: CLECK
2. Der Vergleich zwischen Struct und Class
Struct is oft benutzt um ein Objekt für die Wertsspeicherung zu erstellen, davon die Klasse werden mehr umfangreich benutzt.
- Struct darf aus einer class oder einem struct erben
- Aber Struct erlaubt, aus ein oder viele Protocol.zu erben
Wenn struct als ein Parameter in einer Funktion (oder einer Ausdruck) erscheint, wird es als die Wert übertragen (pass). Inzwischen wenn das Objekt vom class wie einen Parameter in einer Funktion (oder einer Ausdruck) erscheint, wird es als eine Reference übertragen
StructVsClass.swift
import Foundation
// Eine Klasse
class MyClass {
var name: String = "Abc"
}
// Ein struct
struct MyStruct {
var name: String = "Abc"
}
// Eine Funktion, 2 Parameter
// Der erste Parameter ist die Klasse, der zweite Parameter ist ein struct.
func passToMe( myClass: MyClass, myStruct: MyStruct) {
// Die Wert von dem Feld 'name' ändern.
myClass.name = "New Name"
// Die Wert eines Feldes von struct nicht ändern.
// (Es ist eine Kopie, ihre Felder wird die Konstante werden)
// myStruct.name = "New Name" ***
}
func test_passToMe() {
// Ein Objekt von MyClass.
var mc = MyClass()
print("mc.name = \(mc.name)") // Abc
// Eine Wert von MyStruct.
var ms = MyStruct()
print("Call passToMe function")
// Die Parameter in die Funktion passToMe() übertragen
// Achtung: Der erste Parameter braucht keinen Label
passToMe( mc, myStruct: ms)
print("mc.name = \(mc.name)") // New Name
}
Zum Beispiel
mc.name = Abc
Call passToMe function
mc.name = New Name
3. Constructor vom Struct
Struct kann die Constructor ( die Methode zur Erstellung des Objekt) haben, aber kein Destructor (die Methode zur Stornierung des Objekt) haben
Unten sind das einige Bemerkung über Constructor:
- Sie können einen oder viele Constructor für struct.schreiben
- Im Constructor müssen Sie die Werte für alle Felder ohne Werte zuweisen.
4. Die Methode und das Attribute vom Struct
Struct kann viele (method) und Eigenschaften (property) haben
Book.swift
import Foundation
struct Book {
// Property
var title:String {
get {
return self.title;
}
set (value) {
self.title = value
}
}
// Property
var author:String {
get {
return self.author;
}
set(value) {
self.author = value;
}
}
// Constructor.
init( title:String, author:String) {
self.title = title;
self.author = author;
}
// Method.
func getInfo() -> String {
return "Book Title: " + self.title + ", Author: " + self.author;
}
}
Sehen Sie über die Eigenschaften (Property) bei ...:
- Swift Properties
Anleitungen Swift
- Installieren Sie die virtuelle Mac OS-Maschine in VMWare
- Installieren Sie XCode
- Die Anleitung zum Swift für den Anfänger
- Die Anleitung zu Swift Function
- Die Anleitung zu Swift Closure
- Klasse und Objekt in Swift
- Die Anleitung zu Swift Enum
- Die Anleitung zu Swift Struct
- Programmierung für Team mit XCode und SVN
Show More