Sobes.tech
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