Метки аргументов
Часть раздела Основы путешествия по Swift на Coddy. Урок 54 из 86.
Swift позволяет управлять тем, как читаются вызовы функций, с помощью меток аргументов. Метка аргумента используется при вызове функции, а имя параметра — внутри тела функции.
Можно указать оба имени, написав метку аргумента перед именем параметра:
func greet(to name: String) {
print("Hello, \(name)!")
}
greet(to: "Alice") // Вывод: Hello, Alice!Здесь to — это метка аргумента (используется при вызове), а name — имя параметра (используется внутри функции). Благодаря этому вызов звучит естественнее: «поздороваться с Алисой».
Иногда для более лаконичных вызовов хочется вовсе пропустить метку. Используй подчёркивание (_) в качестве метки аргумента:
func square(_ number: Int) -> Int {
return number * number
}
print(square(5)) // Вывод: 25Без символа подчёркивания пришлось бы написать square(number: 5). Символ подчёркивания убирает это требование и упрощает вызов, когда назначение функции и так понятно из её имени.
Задание
ЛегкоСоздай две функции, демонстрирующие различные способы задания меток аргументов:
Функция 1: send
- Используй метку аргумента
messageс именем параметраtext(типString) - Используй метку аргумента
toс именем параметраrecipient(типString) - Возвращай строку в формате:
"Sending '[text]' to [recipient]"
Функция 2: double
- Используй символ подчёркивания
_, чтобы пропустить метку аргумента - Имя параметра
number(типInt) - Возвращай число, умноженное на 2
Определив обе функции, считай из ввода две строки и одно целое число, затем вызови обе функции и выведи результаты в отдельных строках.
На вход будут поданы следующие данные:
- Первая строка: текст сообщения (например,
"Hello") - Вторая строка: имя получателя (например,
"Alice") - Третья строка: число, которое нужно удвоить (например,
"7")
Например, если на вход поданы "Hello", "Alice" и "7", вывод должен быть таким:
Sending 'Hello' to Alice
14Попробуйте сами
// Считайте входные данные
let messageText = readLine()!
let recipientName = readLine()!
let numberToDouble = Int(readLine()!)!
// TODO: Напишите свой код ниже
// Определите функцию 'send' с метками аргументов 'message' и 'to'
// Определите функцию 'double' с опущенной меткой аргумента с помощью '_'
// Вызовите обе функции и выведите результатыВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеПовторение: простая математикаОператоры сравнения7Основы ввода-вывода
Функция printИнтерполяция строкВвод с ReadLineПреобразование типовПовторение: до 120Повторение: истина или ложь2Переменные
Let и VarАннотации типовЧислаСтрокаЛогический типСоглашения об именованииПовторение — инициализация переменных5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Повторение: простая логикаЛогические операторы, часть 3Тернарный оператор8Калькулятор разделения счёта
Приветственное сообщениеВвод данных14Массивы: продвинутый уровень
Срезы массивов. Часть 1Срезы массивов. Часть 2Операторы последовательностейМетод Contains3Опциональные значения
Что такое опциональные значенияИзвлечение значения с помощью if letGuard letОператор объединения с nilПовторение — безопасное извлечение значения6Принятие решений
Условный оператор ifIf — ElseПовторение: простой калькуляторОператор switchSwitch с диапазонами9Циклы
Цикл for-inЦикл whileЦикл repeat-whileПрерывание циклаПереход к следующей итерацииПовторение — факториалДиапазоны в циклахВложенный циклПовторение — динамический вводПотренируйтесь самостоятельно: Песочница Swift