Le Tutoriel de Swift Struct
1. Qu'est-ce que Struct?
Dans Swift, Struct (Structure) est le code particulier et il est utilisé pour construire une variable qui instaure multiples valeurs mais ces valeurs sont liées les uns les autres.
Par exemple, l'information d'un employé(e) comprend:
- Le numéro d'employé(e)
- Le nom de l'employé(e)
- Le poste
Vous pouvez créer 3 variables pour conserver ces 3 informations précitées. Mais vous pouvez créer un Struct pour les enregistrer dans un variable unique.
Swift utilise le mot- clé struct pour déclarer un Struct.
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;
}
}
Par exemple, utilisez Struct:
EmployeeTest.swift
import Foundation
func test_EmployeeStruct() {
// Créez une variable du type struct Employee.
let john = Employee(empNumber:"E01",empName: "John",position: "CLERK")
print("Emp Number: " + john.empNumber)
print("Emp Name: " + john.empName)
print("Emp Position: " + john.position)
}
Editez main.swift:
main.swift
import Foundation
test_EmployeeStruct()
Exécutez l'exemple:
Emp Number: E01
Emp Name: John
Emp Position: CLECK
2. Struct avec Class
Struct est généralement usé pour créer une constante qui stocke des valeurs, alors que le class est diversement utilisé.
- Struct ne permet pas de l'héritage d'une class ou un autre struct.
- Mais Struct permet de l'héritage d'une ou plusieurs Protocol.
Si struct apparaît étant comme un paramètre dans une fonction ( ou une méthode), il est transmis (pass) comme une valeur. Alors que, si l'instante de class apparaît comme étant une fonction (ou une méthode), il est transmis (pass) étant comme une référence (reference).
StructVsClass.swift
import Foundation
// Une classe
class MyClass {
var name: String = "Abc"
}
// Une struct
struct MyStruct {
var name: String = "Abc"
}
// Une fonction, 2 paramètres.
// Le premier paramètre est une classe, le deuxième est une struct.
func passToMe( myClass: MyClass, myStruct: MyStruct) {
// Changez la valeur du champs 'name'.
myClass.name = "New Name"
// Impossible de changer la valeur en champ de cette structure.
// (C'est une copie, ses champs deviennent des constantes et ne peuvent pas être changés).
// myStruct.name = "New Name" ***
}
func test_passToMe() {
// Un objet de MyClass.
var mc = MyClass()
print("mc.name = \(mc.name)") // Abc
// Une valeur de MyStruct.
var ms = MyStruct()
print("Call passToMe function")
// Mettez des paramètres à la fonction passToMe()
// Remarque: le premier paramètre ne nécessite pas d'étiquette. (Label).
passToMe( mc, myStruct: ms)
print("mc.name = \(mc.name)") // New Name
}
Exécutez l'exemple:
mc.name = Abc
Call passToMe function
mc.name = New Name
3. Constructeur de Struct
Struct peut avoir des Constructor (le Constructeur- création d'un objet), mais il n'a pas de Destructor (le Destructeur- la destruction d'un objet).
Quelque remarques à tenir concernant Constructor:
- Vous pouvez écrire un ou plusieurs Constructor pour struct.
- Dans Constructor, vous devez assigner une valeurs aux tout les champs qui n'ont pas de la valeur.
4. Les méthodes et les propriétés de Struct
Struct peut avoir des méthodes (method) et des propriétés (property):
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;
}
}
En savoir plus des propriétés (Property) à:
- Swift Properties
Tutoriels de programmation Swift
- Installer la machine virtuelle Mac OS en VMWare
- Installer XCode
- Tutoriel Swift pour débutant
- Le Tutoriel de Swift Function
- Le Tutoriel de Swift Closure
- Classe et Objet en Swift
- Le Tutoriel de Swift Enum
- Le Tutoriel de Swift Struct
- Programmation pour l'équipe utilisant XCode et SVN
Show More