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.