Мо метавонед намунаи нишон диҳед, ки чӣ гуна арзишҳои навъи дар забонҳои барномасозӣ дар хишт гузошта мешаванд ё интиқол дода мешаванд?
sobes.tech AI
Ҷавоб аз AI
Дар забонҳои барномасозӣ, навъҳои арзишӣ (value types) одатан дар стек (stack) нигоҳ дошта мешаванд, аммо агар онҳо қисми объект ё сохторе бошанд, ки дар гул (heap) ҷойгир аст, ин арзишҳо низ дар гул ҳамчун қисми объект нигоҳ дошта мешаванд.
Масалан, дар Swift, сохтор (struct) навъи арзишӣ аст, ва синф (class) навъи истинодӣ мебошад. Агар шумо синфе дошта бошед бо майдони навъи сохтор, худи сохтор дар дохили объект дар гул нигоҳ дошта мешавад.
Масал дар Swift:
struct Point {
var x: Int
var y: Int
}
class Shape {
var origin: Point
init(origin: Point) {
self.origin = origin
}
}
let shape = Shape(origin: Point(x: 10, y: 20))
Ин ҷо, объект shape дар гул сохта мешавад ва майдони origin (арзиши навъи Point) дар дохили ин объект дар гул нигоҳ дошта мешавад. Ҳатто агар Point навъи арзишӣ бошад, арзиши он дар гул ҷойгир аст, зеро қисми объекти синф мебошад.
Аз ин рӯ, навъҳои арзишӣ метавонанд дар гул нигоҳ дошта шаванд, агар онҳо қисми объект ё сохторе бошанд, ки дар гул ҷойгир аст.