Sobes.tech
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.