Junior — Middle
Wat zijn de verschillen tussen waarde- en referentietypen in programmeren?
sobes.tech AI
Antwoord van AI
Value types (waarde types) en reference types (referentietypes) verschillen in de manier waarop ze gegevens opslaan en doorgeven.
-
Value types worden direct in het geheugen van de variabele opgeslagen. Bij toewijzing of doorgeven wordt de waarde zelf gekopieerd. Wijzigingen in de kopie beïnvloeden het origineel niet. In Swift omvatten value types structs (struct), enums (enum) en tuples.
-
Reference types worden op de heap opgeslagen, en de variabele bevat een verwijzing naar het object. Bij toewijzing wordt alleen de verwijzing gekopieerd, niet het object. Wijzigingen via één verwijzing worden weerspiegeld in alle verwijzingen. In Swift zijn dit classes (class).
Voorbeeld:
struct Point {
var x: Int
var y: Int
}
class Person {
var name: String
init(name: String) { self.name = name }
}
var p1 = Point(x: 1, y: 2)
var p2 = p1
p2.x = 10
print(p1.x) // 1 — de kopie is niet veranderd
var person1 = Person(name: "Alice")
var person2 = person1
person2.name = "Bob"
print(person1.name) // Bob — beide variabelen verwijzen naar hetzelfde object