Повторение — безопасное деление
Часть раздела Логика и управление потоком путешествия по Lua на Coddy. Урок 34 из 54.
Задание
ЛегкоНапиши функцию safeDivide, которая принимает a и b и возвращает результат деления a на b или сообщение об ошибке, если деление не удалось.
Функция должна использовать pcall(), чтобы безопасно выполнить операцию деления. Создай внутреннюю функцию, которая выполняет деление и вызывает ошибку, если b равно нулю, а затем оберни её в pcall(), чтобы перехватывать ошибки.
Логика:
- Создай внутреннюю функцию, которая проверяет, равно ли
b0 - Если
bравно 0, вызовиerror("Cannot divide by zero", 0)(значение0исключает имя файла и номер строки из сообщения) - В противном случае верни
a / b - Используй
pcall(), чтобы выполнить внутреннюю функцию - В случае успеха верни
"Result: ", за которым следует результат деления - Если произойдёт ошибка, верни
"Error: ", за которым следует сообщение об ошибке
Параметры:
a(число): делимоеb(число): делитель
Возвращает: строку, содержащую либо "Result: ", за которым следует результат деления, либо "Error: ", за которым следует сообщение об ошибке (строка)
Попробуйте сами
function safeDivide(a, b)
-- Напишите код здесь
end
Все уроки раздела Логика и управление потоком
1Продвинутая итерация таблиц
Итерация с помощью pairs()Итерация с помощью ipairs()pairs() против ipairs()Повторение — Лист персонажа2Дополнительные функции библиотеки table
table.concat()Создание таблиц и unpack()table.sort()Пользовательская сортировка с помощью функцийИтоги — Таблица рекордовПотренируйтесь самостоятельно: Онлайн-компилятор Lua