Swift - Structures
Swift 4 fournit un bloc de construction flexible pour utiliser des constructions en tant que structures. En utilisant ces structures, une fois peut définir des méthodes et des propriétés de construction.
Contrairement à C et Objective C
La structure n'a pas besoin de fichiers d'implémentation et d'interface.
La structure nous permet de créer un seul fichier et d'étendre automatiquement son interface à d'autres blocs.
Dans Structure, les valeurs des variables sont copiées et transmises dans les codes suivants en renvoyant une copie des anciennes valeurs afin que les valeurs ne puissent pas être modifiées.
Syntaxe
Structures are defined with a 'Struct' Keyword.
struct nameStruct {
Definition 1
Definition 2
---
Definition N
}
Définition d'une structure
Prenons par exemple, supposons que nous devions accéder au dossier des élèves contenant les notes de trois matières et connaître le total de trois matières. Ici, markStruct est utilisé pour initialiser une structure avec trois marques comme type de données 'Int'.
struct MarkStruct {
var mark1: Int
var mark2: Int
var mark3: Int
}
Accéder à la structure et à ses propriétés
Les membres de la structure sont accessibles par son nom de structure. Les instances de la structure sont initialisées par le mot clé 'let'.
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)")
Lorsque nous exécutons le programme ci-dessus en utilisant aire de jeux, nous obtenons le résultat suivant -
Mark1 is 100
Mark2 is 200
Mark3 is 300
Les notes des étudiants sont accessibles par le nom de la structure «studentMarks». Les membres de la structure sont initialisés en tant que mark1, mark2, mark3 avec des valeurs de type entier. Ensuite, la structure studentMarks () est transmise aux 'marques' avec le mot clé 'let'. Ci-après, «marques» contiendra les valeurs des membres de la structure. Désormais, les valeurs sont imprimées en accédant aux valeurs des membres de la structure par '.' avec ses noms initialisés.
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
Lorsque nous exécutons le programme ci-dessus en utilisant aire de jeux, nous obtenons le résultat suivant -
98
97
Meilleures pratiques d'utilisation des structures
Le langage Swift 4 fournit la fonctionnalité pour définir des structures en tant que types de données personnalisés pour la construction des blocs fonctionnels. Les instances de structure sont passées par sa valeur aux blocs définis pour des manipulations ultérieures.
Besoin d'avoir des structures
Pour encapsuler des valeurs de données simples.
Copier les données encapsulées et leurs propriétés associées par «valeurs» plutôt que par «références».
Structure à «Copier» et «Référence».
Les structures dans Swift 4 transmettent leurs membres avec leurs valeurs plutôt que par ses références.
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)
Lorsque nous exécutons le programme ci-dessus en utilisant aire de jeux, nous obtenons le résultat suivant -
98
96
100
Un autre exemple
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)
Lorsque nous exécutons le programme ci-dessus en utilisant aire de jeux, nous obtenons le résultat suivant -
34
42
13
La structure 'markStruct' est définie en premier avec ses membres mark1, mark2 et mark3. Désormais, les variables des classes membres sont initialisées pour contenir des valeurs entières. Ensuite, la copie des membres de la structure est créée avec le mot-clé «self». Une fois la copie des membres de la structure créée, le bloc de structure avec ses marques de paramètres est passé à la variable «marks» qui contiendra désormais les notes des étudiants. Ensuite, les marques sont imprimées sous la forme 98, 96, 100. L'étape suivante pour les mêmes membres de structure, une autre instance appelée «échec» est utilisée pour pointer les mêmes membres de structure avec des marques différentes. Ensuite, les résultats sont maintenant imprimés sous la forme 34, 42, 13. Cela explique clairement que les structures auront une copie des variables membres puis passeront les membres à leurs blocs fonctionnels à venir.