Structures
Structures are copied when used as an initial value for constant or variable, when assigned to a different variable, when passed as an argument to a function, and when returned from a function.
Accessing a field or calling a function of a structure does not copy it.
// Declare a structure named `SomeStruct`, with a variable integer field.
//
pub struct SomeStruct {
pub var value: Int
init(value: Int) {
self.value = value
}
fun increment() {
self.value = self.value + 1
}
}
// Declare a constant with value of structure type `SomeStruct`.
//
let a = SomeStruct(value: 0)
// *Copy* the structure value into a new constant.
//
let b = a
b.value = 1
// NOTE: `b.value` is 1, `a.value` is *`0`*
b.increment()
// `b.value` is 2, `a.value` is `0`
PreviousResource DestructorsNextAccessing Fields and Functions of Composite Types Using Optional Chaining
Last updated
Was this helpful?