Преобразование типов
Часть раздела Основы путешествия по Swift на Coddy. Урок 34 из 86.
Поскольку readLine() возвращает String?, вам часто потребуется преобразовать эту строку в число, чтобы выполнять вычисления. Swift требует явного преобразования типа. Он не преобразует строку в целое число или число с плавающей точкой автоматически.
Чтобы преобразовать строку в целое число, используй инициализатор Int(). Поскольку преобразование может завершиться неудачей (строка может содержать буквы вместо цифр), он возвращает опционал:
let input = "42"
if let number = Int(input) {
print(number + 10) // Вывод: 52
}Для десятичных чисел используй Double():
let priceString = "19.99"
if let price = Double(priceString) {
print(price * 2) // Вывод: 39.98
}Это особенно полезно при сочетании readLine() с числовыми операциями. Можно объединить распаковку в цепочку:
if let input = readLine(), let age = Int(input) {
print("Next year you'll be \(age + 1)")
}Запятая в инструкции if let означает, что должны выполниться оба условия: ввод должен существовать, и его должно быть возможно преобразовать в целое число.
Задание
ЛегкоСчитай два значения: десятичное число в виде строки и целое число в виде строки. Преобразуй их в соответствующие числовые типы и вычисли их произведение.
Ты получишь следующие значения:
- Первая строка: десятичное число (например,
"3.5") - Вторая строка: целое число (например,
"4")
Используй readLine(), чтобы считать оба значения. Преобразуй первое значение в Double, а второе — в Int. Затем перемножь их и выведи результат.
Используй if let с цепочечной опциональной привязкой, чтобы безопасно распаковать оба введённых значения и преобразованные значения.
Выведи: произведение двух чисел типа Double
Попробуйте сами
// Считайте десятичное число как строку
if let decimalString = readLine() {
// Считайте целое число как строку
if let intString = readLine() {
// TODO: Напишите свой код ниже
// Преобразуйте decimalString в Double, а intString в Int, используя if let
// Затем вычислите и выведите их произведение
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
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