Middle
Маалымат түрү (value type) шилтемелүү түргө (reference type) тиешелүү болсо, бул эмне дегендикти билдирет?
sobes.tech AI
AIден жооп
Маалыматтын түрү көчүрүлөт белгилөө же функцияга өткөрүлгөндө, ал эми шилтеменин түрү * шилтемеге өтөт*, башкача айтканда, бар экземплярга көрсөткүч көчүрүлөт.
Маалыматтын түрлөрү (Value Types):
- Структуралар (struct)
- Энумациялар (enum)
- Туплдар (tuple)
- Көпчүлүк негизги түрлөр (Int, String, Bool, Array, Dictionary, Set жана башка)
struct Point {
var x: Int
var y: Int
}
var p1 = Point(x: 1, y: 2)
var p2 = p1 // p1дин мааниси p2га көчүрүлөт
p2.x = 10
// p1.x дагы эле 1, p2.x 10 болду
print("p1: \(p1.x)")
print("p2: \(p2.x)")
Шилтеменин түрлөрү (Reference Types):
- Класстар (class)
- Функциялар (closure)
class Coordinate {
var x: Int
var y: Int
init(x: Int, y: Int) {
self.x = x
self.y = y
}
}
var c1 = Coordinate(x: 1, y: 2)
var c2 = c1 // c2 ошол эле экземплярга шилтеме кылат
c2.x = 10
// c1.x дагы эле 10
print("c1: \(c1.x)")
print("c2: \(c2.x)")
Негизги айырмачылыктар:
| Өзгөчөлүк | Маалыматтын түрү (Value Type) | Шилтеменин түрү (Reference Type) |
|---|---|---|
| Белгилөө | Маалыматтын көчүрмөсү | Шилтеменин көчүрмөсү (показчик) |
| Жад | Стекке бөлүнөт (жеңил учурларда) | Хадгалаган жеринде бөлүнөт |
| Жалпы колдонуу | Ар бир өзгөрмө өзүнүн көчөсүнө ээ | Бир нече өзгөрмөлөр бир эле экземплярга шилтеме кылышы мүмкүн |
| Муттабелдик | Өзгөртүү үчүн көчөнү өзгөртүү керек | Бир шилтемедеги өзгөртүү бардык жерде көрүнөт |
iOS өнүктүрүүдө эки түрү да кеңири колдонулат. Анын айырмачылыктарын билсеңиз, ар бир тапшырма үчүн ылайыктуу түрдү тандай аласыз жана каалаган жаман таасирлерден сактансаңыз болот, өзгөчө мутабельдүү маалыматтар менен иштөөдө.