Sobes.tech
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.