Sobes.tech
Middle

Wat is het verschil tussen het kopiëren van een array en structuren in Swift?

sobes.tech AI

Antwoord van AI

Arrays in Swift zijn structuren (struct).

Bij het kopiëren van een array wordt een nieuwe kopie van de elementen gemaakt. Wijzigingen in één array beïnvloeden de andere niet.

var array1 = [1, 2, 3]
var array2 = array1 // Kopie wordt gemaakt
array2[0] = 10
// array1 = [1, 2, 3]
// array2 = [10, 2, 3]

Structuren in Swift zijn waardetypes (value types). Bij toewijzing of doorgeven van een structuur aan een functie wordt een nieuwe kopie van de gegevens gemaakt. Wijzigingen in één kopie van de structuur beïnvloeden de andere kopieën niet.

struct Point {
    var x: Int
    var y: Int
}

var point1 = Point(x: 0, y: 0)
var point2 = point1 // Kopie wordt gemaakt
point2.x = 10
// point1.x = 0
// point2.x = 10

Het verschil is dat arrays, als structuren, gedrag van het waardetype vertonen bij kopiëren, en een volledige kopie van hun elementen maken. Structuren zijn over het algemeen ook waardetypes en maken bij kopiëren een nieuwe kopie van hun eigenschappen. Daarom geldt voor beide entiteiten (arrays en structuren) de kopieersemantiek copy-by-value. Het verschil is dat een array een container is voor andere waarden, die zowel waardetypes als referentietypes kunnen zijn.