Structure rapide
Les structures Swift sont une construction polyvalente et flexible pour le code du bâtiment.
Nous pouvons définir des propriétés (constantes, variables) et ajouter des méthodes à la structure pour étendre les fonctionnalités de la structure.
La différence entre C et Objective C est :
La structure n'a pas besoin de contenir de fichiers d'implémentation ni d'interfaces. La structure
nous permet de créer un seul fichier et le système générera automatiquement des interfaces externes vers un autre code.
La structure est toujours passée dans le code en étant copiée, sa valeur ne peut donc pas être modifiée.
Syntaxe
On définit la structure à travers le mot clé struct :
struct nameStruct { Definition 1 Definition 2 …… Definition N }
Instance
On définit une structure nommée MarkStruct, Les attributs du structure sont les scores des étudiants dans trois matières, et le type de données est Int :
struct MarkStruct{ var mark1: Int var mark2: Int var mark3: Int }
Nous pouvons accéder aux membres de la structure via le nom de la structure.
La structure est instanciée à l'aide du mot-clé let :
import Cocoa struct studentMarks { var mark1 = 100 var mark2 = 78 var mark3 = 98 } let marks = studentMarks() print("Mark1 是 \(marks.mark1)") print("Mark2 是 \(marks.mark2)") print("Mark3 是 \(marks.mark3)")
Le résultat de sortie de l'exécution du programme ci-dessus est :
Mark1 是 100 Mark2 是 78 Mark3 是 98
Dans l'exemple , nous transmettons le nom de structure « studentMarks » pour accéder aux notes des étudiants. Les membres de la structure sont initialisés sous la forme mark1, mark2, mark3 et le type de données est entier.
Ensuite, nous instancions la structure studentMarks() et la transmettons aux marques en utilisant le mot-clé let.
Enfin, on accède aux valeurs des membres de la structure grâce aux numéros ..
L'instanciation suivante transmet une valeur lors de l'instanciation d'une structure et clone une structure :
import Cocoa struct MarksStruct { var mark: Int init(mark: Int) { self.mark = mark } } var aStruct = MarksStruct(mark: 98) var bStruct = aStruct // aStruct 和 bStruct 是使用相同值的结构体! bStruct.mark = 97 print(aStruct.mark) // 98 print(bStruct.mark) // 97
Le résultat de sortie de l'exécution du programme ci-dessus est :
98 97
Application de structure
Dans votre code, vous pouvez utiliser des structures pour définir vos types de données personnalisés.
Les instances de structure sont toujours transmises par valeur pour définir votre type de données personnalisé.
En règle générale, veuillez envisager de construire une structure lorsqu'une ou plusieurs des conditions suivantes sont remplies :
Le but principal d'une structure est d'encapsuler un petit nombre de valeurs de données simples associées.
Il y a des raisons de s'attendre à ce que lorsqu'une instance de structure est attribuée ou transmise, les données encapsulées soient copiées plutôt que référencées.
Tous les attributs de type valeur stockés dans la structure seront également copiés au lieu d'être référencés.
Une structure n'a pas besoin d'hériter des propriétés ou du comportement d'un autre type existant.
Par exemple, les structures peuvent être utilisées dans les situations suivantes :
La taille d'une forme géométrique, encapsulant un attribut
width
etheight
Attributs, tous deux de typeDouble
.Un chemin dans une certaine plage encapsule un attribut
start
et un attributlength
, tous deux de typeInt
.est un point dans le système de coordonnées tridimensionnelles, encapsulant les attributs
x
,y
etz
, tous les trois sont de typeDouble
.
Les instances de structure sont transmises par valeur plutôt que par référence.
import Cocoa 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 } } print("优异成绩:") var marks = markStruct(mark1: 98, mark2: 96, mark3:100) print(marks.mark1) print(marks.mark2) print(marks.mark3) print("糟糕成绩:") var fail = markStruct(mark1: 34, mark2: 42, mark3: 13) print(fail.mark1) print(fail.mark2) print(fail.mark3)
Le résultat de sortie de l'exécution du programme ci-dessus est :
优异成绩: 98 96 100 糟糕成绩: 34 42 13
Dans l'exemple ci-dessus, nous avons défini la structure markStruct, avec trois attributs de membre : mark1, mark2 et mark3. Lorsque vous utilisez des propriétés de membre dans une structure, utilisez le mot-clé self.
A partir de l'exemple, on peut bien comprendre que l'instance de structure est passée par valeur.