Junior
რა არის მიმთითებელი ტიპები?
sobes.tech AI
პასუხი AI-სგან
Референс түрлөрү (Reference Types) — бул маалымат түрлөрү, аларды белгилөө же функцияга өткөрүү учурунда, объекттин эсинде жайгашкан үлгүсүнө шилтеме өткөрүп беришет, өзү эмес.
Негизги өзгөчөлүктөрү:
- Бир нече өзгөрмө бир эле объекттин үлгүсүнө шилтеме кылышы мүмкүн.
- Бир шилтеме аркылуу объекттин абалын өзгөртүү, башка шилтемелерде да көрүнөт.
- Референс түрлөрү менен иштөө, heap (купа) ичиндеги объекттерге көрсөткүчтөр аркылуу жүргүзүлөт.
Swiftтеги референс түрлөрүнүн мисалдары:
- Класстар (
class) - Функциялар (
func) - Жабдыктар (
{...})
Маанилүү айырмачылыктар:
| Өзгөчөлүк | Референс түрү (Reference Type) | Маани түрү (Value Type) |
|---|---|---|
| Ненин өткөрүлүшү | Шилтеме (жаддагы дарек) | Көчүрмө (копия) |
| Сактоо жери | Heap | Stack |
| Көчүрүү | Шилтеме көчүрүлөт | Маани көчүрүлөт |
| Өзгөртүү | Оригинал объектке таасир этет | Көчөгө таасир этет |
class MyClass {
var value: Int
init(value: Int) {
self.value = value
}
}
var object1 = MyClass(value: 10) // Класс үлгүсүн түзүү
var object2 = object1 // object2 азыр ошол эле үлгүгө шилтеме кылат
print(object1.value) // Чыгуу: 10
print(object2.value) // Чыгуу: 10
object2.value = 20 // object2 аркылуу маанини өзгөртүү
print(object1.value) // Чыгуу: 20 (өзгөртүү object2 аркылуу object1ге да таасир этти)
print(object2.value) // Чыгуу: 20
Swiftте референс түрлөрү үчүн эс тутумду башкаруу Automatic Reference Counting (ARC) аркылуу жүргүзүлөт.