Junior — Middle
Hogyan különböztetjük meg az adat típusokat érték és referencia szerint, és miben különböznek a programozásban?
sobes.tech MI
Válasz az MI-től
Az érték- és referencia típusok különböznek abban, hogyan tárolódnak és kerülnek átadásra egy programban.
- Érték típusok (value types) másolódnak átadás vagy továbbítás során. Minden változó saját független másolatot tartalmaz az adatokból.
- Referencia típusok (reference types) azonos objektumra mutató hivatkozást másolnak átadás vagy továbbítás során. A változtatások egy hivatkozáson keresztül láthatók mások számára.
Például Swift-ben:
var a = 5
var b = a // a 5 érték másolódik
b = 10
print(a) // 5, mivel a és b függetlenek
class Person {
var name: String
init(name: String) { self.name = name }
}
var p1 = Person(name: "Иван")
var p2 = p1 // a hivatkozás másolódik
p2.name = "Пётр"
print(p1.name) // "Пётр", mivel p1 és p2 ugyanarra az objektumra mutat
Ezért a különbség megértése fontos a memória kezelésében és a program viselkedésének előre láthatóságában.