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.