Copy-on- write
Value Type在传递时时用复制的。
当复制一份的成本太高的时候,采用Copy-on- write。
Array,Dictionary,Set,String会采用这种行为。
把一个Value Type当作Reference Type来对待,直到你对他做改动为止。
关键字:inout
Copy-in Copy-out。复制进来,复制出去。
func add(_ a: Int, _ b: Int) -> Int {
a + b
}
var number = 1
number = add(number, 2)
print(number)
func add2(_ a: inout Int, _ b: Int) {
a += b
}
var number2 = 1
add2(&number2, 2)
print(number2)