Junior
Ko tieši glabā mainīgais, kad mēs izveidojam value tipa objektu?
sobes.tech AI
Atbilde no AI
Kad mēs izveidojam vērtības tipu (struktūra, enum, tuple Swift), mainīgais tieši atmiņā glabā kopiju šī objekta datiem. Piešķirot vai pārsūtot šādu objektu kā parametru, tiek izdarīta tā satura kopija.
Piemēri:
struct Point {
var x: Int
var y: Int
}
var p1 = Point(x: 1, y: 2) // Mainīgais p1 glabā datu kopiju (x=1, y=2)
var p2 = p1 // p2 saņem p1 datu kopiju. Tie ir neatkarīgi kopijas.
p1.x = 10 // Mainās tikai p1.x
print(p2.x) // Izvadīs 1, jo p2 nemainījās
Salīdzinājums ar atsauces tipu (klase):
| Īpašība | Vērtības tips (struktūra, enum) | Atsauces tips (klase) |
|---|---|---|
| Kas tiek glabāts mainīgajā | Objekta datu kopija | Atsauce uz objektu atmiņā |
| Piešķiršana / Pārsūtīšana | Datu kopija | Atsauces kopija (norāda uz to pašu objektu) |
| Izmaiņas | ietekmē tikai pašreizējo kopiju | ietekmē objektu, uz kuru norāda atsauce (var ietekmēt arī citas mainīgās, kas norāda uz to pašu objektu) |