When i pass a parameter to a swift function does the function copies the parameter or does it uses the reference to that parameter. On value types (struct, enum, tuple) I am sure that the argument is copied to the function. The question is on reference types (objects), what does it happens when they are passed as argument to a swift function?