[swift-users] Passing value types or members of value types?
kelvin13ma at gmail.com
Sun May 7 00:24:32 CDT 2017
I hear that a lot but why do all the official sources sound like copy-on-write is something you have to manually implement with a class and isUniquelyReferenced if it’s not an array or a string?
> On May 7, 2017, at 12:02 AM, Nate Birkholz <nbirkholz at gmail.com> wrote:
> Let me try one more time, my stupid phone keeps changing words.
> ACTUALLY, the struct is a pointer until it's written to, and is only copied on write.
> Sent from my iPhone, please excuse brevity and errors
>> On May 6, 2017, at 9:59 PM, Nate Birkholz <nbirkholz at gmail.com> wrote:
>> Oddly, until it's *written* you will be working with a pointer.
>> Sent from my iPhone, please excuse brevity and errors
>>> On May 6, 2017, at 9:33 PM, Kelvin Ma via swift-users <swift-users at swift.org> wrote:
>>> If I have a “large” struct like
>>> struct Vertex
>>> let x:Double, y:Double
>>> var r:Int, g:Int, b:Int
>>> let s:Double, t:Double
>>> var selected:Bool
>>> and I want to pass it to a function without modifying it like
>>> func taxicab_distance(_ v1:Vertex, _ v2:Vertex) -> Double
>>> return v2.x - v1.x + v2.y - v1.y
>>> Will the entire struct Vertex get copied and pushed onto the stack, or will only the relevant members be passed to the function?
>>> In other words, does the compiler know to optimize this call down to
>>> func taxicab_distance(v2x:Double, v1x:Double, v2y:Double, v1y:Double) -> Double
>>> return v2x - v1x + v2y - v1y
>>> swift-users mailing list
>>> swift-users at swift.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the swift-users