Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Постоянные и Изменяемые ПараметрыПараметры функции по умолчанию – константы. Попытки их изменить приведут к ошибке компиляции. Подразумевается что изменение параметра - это ошибка.
Однако, иногда нужно что бы функция имела изменяемую копию параметра для работы с ней. Вы можете избежать объявления новой изменяемой переменной внутри функции путём присвоения одному или более параметрам изменяемый вид. В таком случае, параметры доступны как изменяемые (var), а не как константы (let) и дают копии своих значений для изменения функцией в которую они переданы.
Назначить изменяемый параметр можно добавив префикс var:
func выровнятьВправо(var строка: String, нужнаяДлина:Int, дополнение: Character) -> String { let сколькоТире = нужнаяДлина -countElements(строка) for _ in 1...сколькоТире { строка = дополнение + строка } return строка } let начальнаяСтрока = "привет" let конечнаяСтрока = выровнятьВправо(начальнаяСтрока,10, "-") // конечнаяСтрока равна "-----привет" // начальнаяСтрока всё ещё равна "привет"
Этот пример объявляет новую функцию выровнятьВправо, которая выравнивает переданную строку в правый край, выведенной строки. Всё место слева занято дополнительным знаком тире. Строка "привет"сконвертирована в "-----привет".
Функция выровнятьВправо, определяет входному параметру строка быть изменяемым. Это означает, что строка теперь доступна как локальная переменная инициализированная из переданного значения с типом String и может быть использована внутри функции.
Функция начинает свою работы с выяснения сколько символов нужно добавить слева в переменную строка в целях достичь нужного предела. Это значение сохраняется как локальная константа, названная сколькоТире. Затем функция добавляет сколькоТире раз значение дополнение слева к начальной строке и выводит результат. Она использует изменяемую переменную параметра для строковых манипуляций.
ВАЖНО: Изменения которые вы проводите с подобно назначенным параметром не сохраняются за пределами каждого раза вызова функции и не заметны вне тела функции. Такой изменяемый параметр существует только в пределах времени выполнения функции и только при её вызове.
|