Das beste Swift-Klasse-Tutorial im Jahr 2024. In diesem Tutorial können Sie Körperbau und Strukturvergleich,Als Referenztypen der Klasse Attribut,Identitätsoperator, lernen
Swift-Klasse ist der Code verwendet, um eine allgemeine und flexible Struktur zu bauen.
Wir können die Eigenschaften (Konstanten, Variablen) und Methoden für die Klasse definieren.
Und andere Programmiersprachen sind unterschiedlich, Swift nicht benötigen Sie benutzerdefinierte Klassen zu trennen Schnittstelle und Implementierung von Dateien zu erstellen. Sie haben zu tun, es ist eine Klasse in einer einzigen Datei zu definieren, wird das System automatisch den Code für andere externe Schnittstellen erzeugen.
Swift Klassen und Strukturen haben viel gemeinsam. Üblich ist, dass:
Im Vergleich mit der Struktur, Klasse hat die folgenden zusätzlichen Funktionen:
Class classname { Definition 1 Definition 2 …… Definition N }
class student{ var studname: String var mark: Int var mark2: Int }
Instanziieren Sie die Klasse:
let studrecord = student()
import Cocoa class MarksStruct { var mark: Int init(mark: Int) { self.mark = mark } } class studentMarks { var mark = 300 } let marks = studentMarks() print("成绩为 \(marks.mark)")
Die obige Programmausführung Ausgabe ist:
成绩为 300
Attribute der Klasse zugegriffendurch werden.Das Format ist:instantiate Klassenname Eigenschaftsname:
import Cocoa class MarksStruct { var mark: Int init(mark: Int) { self.mark = mark } } class studentMarks { var mark1 = 300 var mark2 = 400 var mark3 = 900 } let marks = studentMarks() print("Mark1 is \(marks.mark1)") print("Mark2 is \(marks.mark2)") print("Mark3 is \(marks.mark3)")
Die obige Programmausführung Ausgabe ist:
Mark1 is 300 Mark2 is 400 Mark3 is 900
Weil Klassen Referenztypen sind, kann es zur gleichen Zeit ein Hinweis auf eine Klasseninstanz im Hintergrund eine Vielzahl von Konstanten und Variablen sein.
Um festgestellt, ob die beiden Konstanten oder Variablen zur selben Klasse Instanz beziehen, gebaut Swift zwei identische Operatoren:
Identitätsoperator | nonidentical Betreiber |
---|---|
Die Betreiber sind: === | Die Betreiber sind :! == |
Wenn die beiden Konstanten oder Variablen verweisen auf die gleiche Instanz einer Klasse return true | Wenn zwei unterschiedliche konstante oder variable Bezüge eine Klasseninstanz gibt true zurück |
import Cocoa class SampleClass: Equatable { let myProperty: String init(s: String) { myProperty = s } } func ==(lhs: SampleClass, rhs: SampleClass) -> Bool { return lhs.myProperty == rhs.myProperty } let spClass1 = SampleClass(s: "Hello") let spClass2 = SampleClass(s: "Hello") if spClass1 === spClass2 {// false print("引用相同的类实例 \(spClass1)") } if spClass1 !== spClass2 {// true print("引用不相同的类实例 \(spClass2)") }
Die obige Programmausführung Ausgabe ist:
引用不相同的类实例 SampleClass