Junior — Middle
Pouvez-vous donner un exemple où un objet de classe est créé sur la pile plutôt que sur le tas?
sobes.tech IA
Réponse de l'IA
Dans iOS, les objets de classes sont généralement créés dans le tas, car les classes sont des types de référence. Cependant, si vous utilisez des structures (struct), qui sont des types de valeur, elles sont créées sur la pile.
Exemple :
struct Point {
var x: Int
var y: Int
}
func createPoint() {
let p = Point(x: 10, y: 20) // créé sur la pile
print(p)
}
Ici, Point est une structure, et la variable p est créée sur la pile. Pour les classes, par exemple :
class Person {
var name: String
init(name: String) {
self.name = name
}
}
func createPerson() {
let person = Person(name: "John") // objet dans le tas, référence à lui sur la pile
print(person.name)
}
Ainsi, les objets de classes sont créés dans le tas, tandis que les structures le sont sur la pile.