Sobes.tech
Junior — Middle

Puoi fare un esempio di quando un oggetto di classe viene creato nello stack invece che nell'heap?

sobes.tech AI

Risposta dell'AI

In iOS, gli oggetti di classi vengono generalmente creati nell'heap, poiché le classi sono tipi di riferimento. Tuttavia, se si utilizzano strutture (struct), che sono tipi di valore, vengono create nello stack.

Esempio:

struct Point {
    var x: Int
    var y: Int
}

func createPoint() {
    let p = Point(x: 10, y: 20) // creato nello stack
    print(p)
}

Qui, Point è una struttura, e la variabile p viene creata nello stack. Per le classi, ad esempio:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

func createPerson() {
    let person = Person(name: "John") // oggetto nell'heap, riferimento su stack
    print(person.name)
}

Pertanto, gli oggetti di classi vengono creati nell'heap, mentre le strutture nello stack.