Sobes.tech
Junior — Middle

Дар куҷо структура ҷойгир карда мешавад, агар дар дохили он майдоне бошад, ки намунаи синф аст?

sobes.tech AI

Ҷавоб аз AI

Дар iOS, агар структура (struct) дар дохили худ майдоние дошта бошад, ки намунаи синф (class) аст, худи структура дар стек ҷойгир мешавад, ва майдони синф дар куча (heap) ҷойгир мешавад.

Ин бо сабаби он аст, ки структураҳо намудҳои арзишӣ (value types) мебошанд, ки мустақиман дар ҷойи ки эълон шудаанд (одатан дар стек) нигоҳ дошта мешаванд, ва синфҳо намудҳои истинодӣ (reference types) мебошанд, ки объектҳои онҳо дар куча ҷойгир мешаванд, ва дар структура танҳо истинод ба он объект нигоҳ дошта мешавад.

Масалан:

class MyClass {
    var value: Int
    init(value: Int) {
        self.value = value
    }
}

struct MyStruct {
    var obj: MyClass
}

var s = MyStruct(obj: MyClass(value: 10))

Ин ҷо, s як структура аст, ки дар стек ҷойгир аст, ва объект MyClass(value: 10) дар куча ҷойгир аст, ва дар s.obj танҳо истинод ба он объект нигоҳ дошта мешавад.