SWIFTER | Блог про Swift
272 subscribers
4 photos
30 links
Swift для каждого на простом и понятном языке. Уроки программирования с интересными кейсами из реальных проектов, без воды и сложных терминов.
Download Telegram
Что такое параметры inout?

Когда мы передаем value типы в качестве аргументов в функцию, они статичны – менять их нельзя. Было бы удобно иметь возможность модифицировать данные значения. К счастью, у Swift для этого есть решение: ключевое слово inout, которое используется перед типом параметра в связке с '&' перед аргументом. Это позволит нам модифицировать значение внутри функции.

На самом деле, мы не модифицируем значением напрямую. Такое поведение называется "copy-in copy-out" или же "call by value result" и работает следующим образом:
1. Когда мы вызываем функцию, значение аргумента копируется.
2. Дальше внутри функции копия модифицируется.
3. По возращению функции Swift присваивает модифицированное значение оригинальному аргументу.

Параметры inout встречаются чаще, чем вам может показаться на первый взгляд. Например, оператор += использует inout для изменения строки, когда вы хотите добавить одну строку к другой.

Source
#languageGuide #inout #advanced