I read about copy-on-write implementation for Array in Swift here.
Arrays, like all variable-size collections in the standard library, use copy-on-write optimization. Multiple copies of an array share the same storage until you modify one of the copies. When that happens, the array being modified replaces its storage with a uniquely owned copy of itself, which is then modified in place. Optimizations are sometimes applied that can reduce the amount of copying.
I was wondering if you have any information about which structure supports copy-on-write.
Copy-on write is supported for
String
and all collection types -Array
,Dictionary
andSet
.Besides that, compiler is free to optimize any struct access and effectively give you copy-on-write semantics, but it is not guaranteed.