Junior — Middle
Масалан, вақте ки объекти синф дар стек ё дар хиштсозӣ сохта мешавад, мисол дода метавонед?
sobes.tech AI
Ҷавоб аз AI
Дар iOS, объектҳои синф одатан дар heap эҷод мешаванд, зеро синфҳо намудҳои истинодӣ мебошанд. Аммо, агар структураҳо (struct) истифода шаванд, ки намудҳои арзишӣ мебошанд, онҳо дар stack эҷод мешаванд.
Масалан:
struct Point {
var x: Int
var y: Int
}
функсия createPoint() {
иҷозат диҳед p = Point(x: 10, y: 20) // дар stack эҷод мешавад
print(p)
}
Ин ҷо, Point структура аст, ва тағйирёбандаи p дар stack эҷод мешавад. Барои синфҳо, масалан:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
функсия createPerson() {
иҷозат диҳед person = Person(name: "John") // объект дар heap, истинод ба он дар stack
print(person.name)
}
Аз ин рӯ, объектҳои синф дар heap эҷод мешаванд, ва структураҳо дар stack.