Junior — Middle
Podes dar um exemplo de quando um objeto de classe é criado na pilha em vez de no heap?
sobes.tech IA
Resposta da IA
No iOS, os objetos de classes geralmente são criados no heap, pois as classes são tipos de referência. No entanto, se usar estruturas (struct), que são tipos de valor, eles são criados na pilha.
Exemplo:
struct Point {
var x: Int
var y: Int
}
func createPoint() {
let p = Point(x: 10, y: 20) // criado na pilha
print(p)
}
Aqui, Point é uma estrutura, e a variável p é criada na pilha. Para classes, por exemplo:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
func createPerson() {
let person = Person(name: "John") // objeto no heap, referência a ele na pilha
print(person.name)
}
Assim, objetos de classes são criados no heap, enquanto estruturas na pilha.