"Передача по копии" (pass-by-value) означает, что при вызове функции или метода в качестве аргумента передается копия значения переменной, а не сама переменная. Любые изменения, внесенные в этот аргумент внутри функции/метода, не влияют на исходную переменную.
В Swift структуры (structs), перечисления (enums) и кортежи (tuples) являются типами значений (value types) и по умолчанию передаются по копии. Классы (classes), замыкания (closures) и функции являются ссылочными типами (reference types) и передаются по ссылке.
Пример передачи по копии в Swift:
swift
В этом примере функция modifyStruct получает копию originalStruct. Изменение mutableS.value внутри функции не затрагивает originalStruct.value.
Пример передачи по ссылке для сравнения (с использованием класса):
swift
Здесь функция modifyClass получает ссылку на объект originalClass. Изменение c.value через эту ссылку изменяет исходный объект.