[swift-users] Passing value types or members of value types?
    Kelvin Ma 
    kelvin13ma at gmail.com
       
    Sat May  6 23:33:02 CDT 2017
    
    
  
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
}
?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20170506/9dc915fb/attachment.html>
    
    
More information about the swift-users
mailing list