Sobes.tech
Junior — Middle

Kun je een voorbeeld geven van wanneer een klasse-object op de stack wordt gemaakt in plaats van op de heap?

sobes.tech AI

Antwoord van AI

In iOS worden objecten van klassen meestal op de heap aangemaakt, omdat klassen referentietypen zijn. Als je echter structuren (struct) gebruikt, die waarde-typen zijn, worden ze op de stack aangemaakt.

Voorbeeld:

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

func createPoint() {
    let p = Point(x: 10, y: 20) // op de stack aangemaakt
    print(p)
}

Hier is Point een structuur, en de variabele p wordt op de stack aangemaakt. Voor klassen, bijvoorbeeld:

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

func createPerson() {
    let person = Person(name: "John") // object op de heap, verwijzing naar op de stack
    print(person.name)
}

Dus, klasse-objecten worden op de heap aangemaakt, terwijl structuren op de stack worden aangemaakt.