Junior
Kas ir atsauces tipi?
sobes.tech AI
Atbilde no AI
Saistīto tipu (Reference Types) ir tādi datu tipi, kuri piešķiršanas vai funkcijas nodošanas laikā nodod atsauci uz objekta piemēru atmiņā, nevis pašu tā kopiju.
Galvenās īpašības:
- Daudzas mainīgās var atsaukties uz vienu un to pašu objekta piemēru.
- Objekta stāvokļa maiņa caur vienu atsauci atspoguļojas visās citās atsaucēs uz šo pašu objektu.
- Darbs ar saistītajiem tipiem notiek caur norādēm uz objektiem kaudzē (heap).
Saistīto tipu piemēri Swift:
- Klases (
class) - Funkcijas (
func) - Aizkaves (
{...})
Salīdzinājums ar vērtību tipiem (Value Types):
| Raksturlielums | Saistītais tips (Reference Type) | Vērtību tips (Value Type) |
|---|---|---|
| Kas tiek nodots | Norāde (adrese atmiņā) | Kopija vērtības |
| Glabāšanas vieta | Kaudzē (Heap) | Stekā (Stack) |
| Kopēšana | Norāde tiek kopēta | Vērtība tiek kopēta |
| Izmaiņas | ietekmē sākotnējo objektu | ietekmē kopiju |
class MyClass {
var value: Int
init(value: Int) {
self.value = value
}
}
var object1 = MyClass(value: 10) // Izveido klases piemēru
var object2 = object1 // object2 tagad atsaucas uz to pašu piemēru kā object1
print(object1.value) // Izvade: 10
print(object2.value) // Izvade: 10
object2.value = 20 // Maina vērtību caur object2
print(object1.value) // Izvade: 20 (Mainīšana caur object2 ietekmēja object1)
print(object2.value) // Izvade: 20
Atmiņas pārvaldība saistītajiem tipiem Swift tiek veikta ar Automatic Reference Counting (ARC).