Structures en Swift
Introduction aux Structures
Les structures sont un concept clé en programmation qui permet de représenter des objets du monde réel dans le code. Elles sont définies à l’aide du mot-clé struct
, suivi du nom et d’un bloc contenant les propriétés et les méthodes de la structure.
Définir une Structure
Pour illustrer, voyons un exemple simple où nous créons une structure qui représente un bâtiment :
struct Bâtiment {
var adresse: String
var étages: Int
init(adresse: String, étages: Int) {
self.adresse = adresse
self.étages = étages
}
}
Notez que toutes les propriétés stockées dans les structures doivent se conformer au protocole Hashable
. Cela signifie qu'elles doivent être capables de générer une représentation unique.
Valeurs Par Défaut des Propriétés
Les propriétés d’une structure peuvent avoir des valeurs par défaut préattribuées, éliminant ainsi la nécessité d’assigner manuellement ces valeurs lors de l'initialisation. Voici comment procéder :
struct Voiture {
var nombreDeRoux = 4
var vitesseMax = 100
}
var citroen = Voiture(nombreDeRoux: 2)
print(citroen.nombreDeRoux) // Affiche : 2
print(citroen.vitesseMax) // Affiche : 100
Création d'Instance de Structure
Pour créer une nouvelle instance d’une structure, utilisez le nom de la structure suivi de parenthèses et des arguments nécessaires :
struct Personne {
var nom: String
var age: Int
}
var morty = Personne(nom: "Morty", age: 14)
Méthode d'Initialisation
Les structures peuvent avoir une méthode d’initialisation init()
pour définir les valeurs des propriétés de l’instance. Contrairement à d’autres méthodes, la méthode d’initialisation n’a pas besoin du mot-clé func
, et utilise self
pour faire référence à l’instance actuelle :
init(nom: String) {
self.nom = nom
}
Méthodes de Structure
Les méthodes dans une structure fonctionnent de manière semblable aux fonctions, mais elles sont spécifiques à une instance. Pour appeler une méthode, utilisez la notation par point :
struct Chien {
func aboyer() {
print("Ouaf")
}
}
let fido = Chien()
fido.aboyer() // Affiche : Ouaf
Méthodes Mutables
Les méthodes marquées avec le mot-clé mutating
peuvent modifier les propriétés de l'instance elles-mêmes. Voici un exemple avec un menu :
struct Menu {
var plats = ["Frites", "Burgers"]
mutating func ajouterAuMenu(plat: String) {
self.plats.append(plat)
}
}
var menuDiner = Menu()
menuDiner.ajouterAuMenu(plat: "Salade")
print(menuDiner.plats) // Affiche : ["Frites", "Burgers", "Salade"]
Conclusion
Les structures en Swift sont un moyen puissant de modéliser des objets complexes et de structurer votre code de manière logique. Elles permettent d’organiser des données et des comportements similaires sous une même entité.