Junior — Middle
Можеш ли да наведеш пример када се објекат класе креира на стеку уместо на хипу?
sobes.tech АИ
Одговор од АИ
У 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)
}
Дакле, објекти класа се креирају у хипу, а структуре на стеку.