Retrouvez la syntaxe des fonctions de base de la POO en Swift.
Définir un struct
avec des propriétés initialisées et d'autres optionnelles.
struct Pixel {
var positionX = 0
var positionY = 0
var height: Int?
var color: UIColor?
}
Définir un struct
simple avec des propriétés initialisées
struct Pixel {
var positionX = 0
var positionY = 0
}
Créer une instance d'un struct
avec les valeurs standard.
struct Pixel {
var positionX = 0
var positionY = 0
}
var myPixel = Pixel()
Accéder à des propriétés
myPixel.positionX
myPixel.height
Définir une valeur pour une propriété.
myPixel.height = 4
myPixel.color = UIColor.black
Créer une instance d'un struct avec l'initializer standard.
struct Pixel {
var positionX: Int
var positionY: Int
}
let myPixel = Pixel(positionX: 4, positionY: 2)
Les struct
sont passées par ...
Les struct
sont passées par valeur
Les class sont passées par ...
Les class
sont passées par référence
Créer une méthode d'instance qui modifie une propriété d'instance
struct Pixel {
var positionX = 0
var positionY = 0
mutating func moveOneRight() {
positionX += 1
}
}
var pixel = Pixel()
pixel.moveOneRight()
Créer une class
simple avec initializer
class Point {
var posX: Float
var posY: Float
var color: UIColor?
init (x: Float, y: Float) {
self.posX = x
self.posY = y
}
}
Héritage.
Définir une sous classe.
class SomeSubclass: SomeSuperclass {
// properties and methods here
}
Héritage. Comment redéfinir une méthode.
Une sous classe pour redéfinir une méthode de la super class. Il faut faire précéder la définition du préfixe override
.
Héritage.
Comment accéder aux méthodes et aux propriétés de la super classe depuis la sous classe ?
Avec le préfixe super
super.someMethod()
super.someProperty
Que font les extensions
?
Les extensions permettent d'ajouter des fonctionnalités à des class
, struct
, enum
ou des protocoles, y compris à des types auxquels on n'a pas accès (par exemple des Int
, String
, ...).
Créer une extension qui retourne true
si une chaîne contient la lettre a.
extension String {
var containsA: Bool {
return self.range(of: "a") != nil
}
}
Ecrire une extension qui ajoute un entier à un entier.
extension Int {
}
func plusX(x: Int)->Int {
return self + x
}
2.plus(x: 3) // donne 5
Une extension peut modifier la valeur de la variable.
Créer un extension qui ajoute 1 à un entier en le modifiant.
extension Int {
}
mutating func plus1() {
self += 1
}
let number = 2
number.plus1()
number // est 3