В Swift параметры inout позволяют изменять входные данные, переданные в функцию.

Например, давайте создадим функцию, которая изменяет исходное значение числовой переменной:

func change(_ number: inout Int){
    number = 2
}

var number = 1
change(&number)

print(number)

В этом руководстве вы узнаете, зачем в Swift необходимы параметры inout и как они работают.

Параметры функции Swift не могут быть изменены

В Swift изменить значение параметра, переданного в функцию, невозможно. Это связано с тем, что аргумент функции является константой, а константы нельзя изменить.

Например:

func change(_ number: Int){
    number = 2
}

var number = 1
change(number)

print(number)

Это приводит к ошибке:

main.swift:6:5: error: cannot assign to value: 'number' is a 'let' constant

Эта ошибка говорит именно о том, что я сказал вам выше. Вы не можете изменить константу.

Однако часто бывает полезно изменить параметр, переданный в функцию.

Как оказалось, это возможно с помощью входной параметры в Swift.

Входные параметры в Swift

Ан входной Параметр — это особый тип параметра, который можно изменить внутри функции, и изменения будут применяться вне функции.

Вот иллюстрация функции, которая принимает число А в качестве параметра inout и изменяет его:

Параметры Inout изменяют переменную напрямую, а не ее копию.

Чтобы превратить параметр функции в входную переменную, которую можно изменить внутри функции:

  1. Измените параметр на параметр inout, используя команду входной модификатор ключевого слова.
  2. Использовать & при передаче аргумента в вызов функции.

Пример

Например, давайте напишем функцию, которая принимает аргумент, который обновляется в функции:

func change(_ number: inout Int){
    number = 2
}

var number = 1
change(&number)

print(number)

Выход:

2

Как видите, мы меняем число ввод внутри функции, но изменение видно и вне функции.

Заключение

Быстрый входной Параметр — это параметр, который можно изменить внутри функции, в которую он передан.

  • Чтобы принять входные параметры, используйте команду входной ключевое слово перед аргументом.
  • Чтобы передать переменную в качестве параметра inout, используйте команду & оператор перед параметром.

Спасибо за прочтение. Приятного кодирования!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *