What is the difference between copying an array and copying structures in Swift?
sobes.tech AI
Answer from AI
Arrays in Swift are structures (struct).
When copying an array, a new copy of the elements is created. Changes in one array do not affect the other.
var array1 = [1, 2, 3]
var array2 = array1 // Copy occurs
array2[0] = 10
// array1 = [1, 2, 3]
// array2 = [10, 2, 3]
Structures in Swift are value types (value types). When assigning or passing a structure to a function, a new copy of the data is created. Changes in one copy do not affect other copies.
struct Point {
var x: Int
var y: Int
}
var point1 = Point(x: 0, y: 0)
var point2 = point1 // Copy occurs
point2.x = 10
// point1.x = 0
// point2.x = 10
The difference is that arrays, being structures, demonstrate value-type behavior when copying, creating a full copy of their elements. Structures in general are also value types and create a new copy of their properties when copied. Thus, for both entities (arrays and structures), copy-by-value semantics apply. The difference is that an array is a container for other values, which can themselves be value types or reference types.