Приведение типов
Часть раздела Fundamentals путешествия по Lua на Coddy — урок 32 из 90.
Чтобы преобразовать ввод в другой тип, нам нужно выполнить приведение.
Для преобразования строки в число мы напишем:
var = io.read()
var = tonumber(var)Или одной строкой,
var = tonumber(io.read())Если входные данные являются числом, например 5, 4, 54, то var будет содержать число. Если входные данные содержат недопустимое число: 5ab, bb, akt и т. д., то tonumber() вернет nil.
Ниже приведена таблица, показывающая, как выполнять приведение к различным типам:
| Приведение | Описание |
| tonumber() | Преобразовать в число |
| tostring() | Преобразовать в строку |
Важно использовать правильный тип, так как это может повлиять на результат.
Результатом конкатенации двух строк будет:
"5" .. "5" = "55"
Результатом сложения двух чисел будет:
5 + 5 = 10
Задание
НовичокВ этом испытании вы будете работать с несколькими входными данными и выполнять вычисления.
Как получить несколько входных данных:
var1 = io.read() -- Первый ввод
var2 = io.read() -- Второй вводВаша задача:
- Прочитать первое число из ввода и сохранить его в переменную
- Прочитать второе число из ввода и сохранить его в другую переменную
- Преобразовать обе переменные в тип number (для числовых вычислений)
- Вычислить произведение этих двух чисел
- Вывести результат
Пример:
Если на вход подаются 2 и 4.5, ваша программа должна вывести 9.0
Помните: Каждый тестовый случай содержит ровно два входных значения, идущих одно за другим.
Шпаргалка
Приведение типов в Lua:
-- Преобразование строки в число
var = tonumber(io.read())
-- Преобразование в строку
var = tostring(io.read())
-- tonumber возвращает nil для некорректного ввода
var = tonumber("abc") -- var равно nilВажно: Конкатенация строк объединяет их, в то время как сложение чисел выполняет арифметическую операцию:
"5" .. "5" = "55" -- Конкатенация строк
5 + 5 = 10 -- Сложение чиселМножественный ввод:
var1 = io.read()
var2 = io.read()Попробуйте сами
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Fundamentals
4Операторы 2: Сравнение и логика
Операторы равенстваОператоры сравненияОператор 'and'Оператор 'or'Оператор 'not'Сокращенные вычисленияЗначения Truthy и FalsyИтоги: Простая логика7Основы условной логики
Оператор if-thenОператор if-then-elseОператор elseifИтоги — Сундук с сокровищами10Таблицы, часть 1: Списки
Что такое таблица?Создание таблицыДоступ к элементам по индексуИзменение элементов по индексуОператор длины '#'table.insert()table.remove()Итоги: управление участниками группы13Проект: Простой магазин зелий
Настройка проектаДобавление зелья2Переменные и типы данных
Что такое переменная?ЧислаСтрокиБулевы значенияЗначение 'nil'Функция type()Правила именованияИтоги — Профиль персонажа5Базовый вывод
Вывод литераловВывод переменныхВывод нескольких значенийОбъединение строк и переменныхФункция tostring()ВводПриведение типовПовторение — Отчет о состоянииПовторение — До 1208Основы работы со строками
string.len()string.upper и string.lowerstring.sub()string.rep()string.find()Повторение — Форматирование имени пользователя3Операторы 1: Арифметика и конкатенация
Арифметические операторыОператор остатка от деленияОператор возведения в степеньКонкатенация строкПриоритет операторовПовторение: Простые вычисления6Проект: Вывод характеристик персонажа
Приветственное сообщениеОбъявление характеристик персонажа9Основы функций
Объявление функцииВызов функцииФункции с параметрамиФункции с несколькими параметрамиОператор 'return'Повторение — Калькулятор площади