Back to questions
Junior — Middle
81
Можешь привести пример, когда объект класса создается на стеке вместо кучи?
Companies where asked
GreenData
Answer from AI
sobes.tech AI
В iOS объекты классов обычно создаются в куче, так как классы — ссылочные типы. Однако, если использовать структуры (struct), которые являются значимыми типами, они создаются на стеке.
Пример:
struct Point {
var x: Int
var y: Int
}
func createPoint() {
let p = Point(x: 10, y: 20) // создается на стеке
print(p)
}
Здесь Point — структура, и переменная p создается на стеке. Для классов же, например:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
func createPerson() {
let person = Person(name: "John") // объект в куче, ссылка на него на стеке
print(person.name)
}
Таким образом, объекты классов создаются в куче, а структуры — на стеке.