Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






В-Из (In-Out) Параметры





Изменяемые параметры, описанные выше, могут меняться только внутри функции. Но если вы хотите изменить значение параметра и хотите сохранить его после и продолжить работать с ним когда функция закончит работы, определите такой параметр как В-Из (In-Out parameter).

 

Для этого при объявлении параметра добавьте ключевой слово inout перед его именем. Такой параметр будет иметь значение которое передаётся в(in) функцию, изменяется, и передаётся из(out) функции и заменят оригинальное, изначально переданное значение.

 

Вы можете передать только изменяемый аргумент в качестве такого параметра. Вы не можете передать константу или литеральное значение как аргумент, потому что константа и литера на могут быть изменены. Вы должны поместить амперсанду (&) непосредственно перед именем изменяемого параметра когда передаёте значение для in-out параметра, показывая этим, что оно может быть изменено функцией.

 

ВАЖНО:

In-Out параметры не могут иметь значения по умолчанию, как и назначенные изменяемыми параметры не могут быть inout. Т.е. параметры обозначенные inout теряют возможность быть обозначенными var и let.

 

Это пример функции с именем поменяйМестами, которая имеет два inout числа с типом Int с именами а и б:

 

func поменяйМестами(inout а: Int, inout б: Int) {

let временнаяА = а

а = б

б = временнаяА

}

 

Функция поменяйМестами, просто меняет значение б на а, а значение а на б. Функция делает это сохраняя значения а во временной константе временнаяА, передаёт значение б в а, затем передаёт значение временнаяА в б.

 

Вы можете вызвать функцию поменяйМестами с двумя изменяемыми значения с типами Int для замены их местами. Обратите внимание, что имена какоетоЧисло и другоеЧисло написаны с амперсандами (&) при передачи их внутрь функции:

 

var какоетоЧисло = 3

var другоеЧисло = 107

поменяйМестами(&какоетоЧисло, &другоеЧисло)

println("Какое-то число сейчас \(какоетоЧисло), а другое число теперь \(другоеЧисло)")

// печатает "Какое-то число сейчас 107, а другое число теперь 3"

 

Пример выше показывает, что оригинальные значения параметров какоетоЧисло и другоеЧисло изменены функцией поменяйМестами, хотя изначально, снаружи функции, они были объявлены с другими значениями.

 

ВАЖНО:

In-Out параметры это не то же самое, что и возвращаемое значение из функции (return). Функция поменяйМестами, не возвращает тип или значение, она непосредственно работает и изменяет оригинальные значения параметров какоетоЧисло и другоеЧисло. In-Out параметры – это альтернативный путь получить эффект изменения вне области кода функции.

Date: 2015-09-02; view: 379; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию