Кандайча шилтемелерге негизделген маалымат түрлөрүн түздөн-түз маанилерди сактаган маалымат түрлөрүнөн айырмалоо керек?
sobes.tech AI
AIден жооп
iOS (Swift жана Objective-C) маалымат түрлөрү баалуу түрлөр (value types) жана ссылка түрлөрү (reference types) болуп бөлүнөт.
-
Баалуу түрлөр маалыматтарды түздөн-түз сактайт. Белгилөө же функцияга өткөрүүдө, маалыматтардын көчүрмөсү түзүлөт. Swiftте булар структуралар (
struct), enumerationдар (enum) жана негизги түрлөр, мисалы,Int,Double,Boolкирет. -
Ссылка түрлөрү маалыматтар жайгашкан эс тутум аймагына шилтемени сактайт. Белгилөөдө шилтеме көчүрүлөт, маалыматтар эмес. Бир шилтеме аркылуу жасалган өзгөртүүлөр башка жактан да көрүнөт. Swiftте булар класстар (
class).
Аларды кантип айырмалоо:
- Swiftте, эгер түр
structжеenumкатары жарыяланса, ал баалуу түрү. - Эгер
classкатары жарыяланса, ал шилтеме түрү.
Мисал:
struct Point {
var x: Int
var y: Int
}
class Person {
var name: String
init(name: String) {
self.name = name
}
}
var p1 = Point(x: 0, y: 0)
var p2 = p1
p2.x = 10
print(p1.x) // 0 - көчүрмө өзгөргөн жок
var person1 = Person(name: "Alice")
var person2 = person1
person2.name = "Bob"
print(person1.name) // Bob - эки өзгөрмө бир эле объектке шилтеме кылат
Ушул жол менен, белгилөө жана өзгөртүү жүрүм-турумга карап, шилтеме негизделген түрлөрдү жана түздөн-түз маанилерди сактай турган түрлөрдү айырмалоо мүмкүн.