Итоги
В этом уроке вы узнали, что:
- Переменная — это имя для значения:
local coins = 120.=означает «сохранить», а не «равно».localпишут один раз, при создании переменной; без него Lua создаёт глобальную переменную. В этом курсе все переменные локальные. - Имена состоят из латинских букв a–z, цифр и
_, не начинаются с цифры и не могут быть ключевыми словами. Заглавные и строчные буквы различаются. В этом курсе их пишут в camelCase:seedPrice. - Переменную меняют, сохраняя в ней новое значение, часто вычисленное из старого:
coins = coins + 5. В стандартном Lua нет ни+=, ни++. - Числа бывают integer (
5) и float (5.0), а float записывают с десятичной точкой./и^всегда дают float,//делит и округляет вниз, а%даёт остаток.math.typeговорит, к какому виду относится число. math.floorиmath.ceilокругляют вниз и вверх и возвращают integer;math.floor(x + 0.5)округляет до ближайшего целого.math.max,math.minиmath.absвозвращают наибольшее значение, наименьшее значение и модуль.- Тексты (строки) пишут в
"…"или'…'.\",\nи\t— это кавычка, новая строка и табуляция...склеивает тексты, не добавляя пробелов, а#даёт длину в байтах. nilозначает «нет значения». Переменная без значения и имя с опечаткой даютnil, а склеивать его или считать с ним — ошибка.(local 'x')в сообщении означает переменную без значения,(global 'x')— обычно опечатку.trueиfalse— логические значения.typeвозвращает тип значения в виде текста:"number","string","boolean","nil".tonumberпревращает текст в число или возвращаетnil, если текст — не число;tostringпревращает любое значение в текст. Lua сам превращает некоторые тексты в числа, но не полагайтесь на это.string.formatстроит текст по шаблону:%d— целое число,%.2f— два знака после запятой,%s— любое значение,%%— знак процента.
В следующем уроке, об условиях, ваши программы научатся принимать решения: делать одно или другое в зависимости от значений переменных.
Задание
- 1
Прежде чем идти дальше, попробуйте всё вместе на вечернем отчёте Эммы. Посчитайте, сколько полных коробок Эмма может заполнить яйцами и сколько яиц останется, и выведите это так:
Коробок: 4, яиц осталось: 3 - 2
Полные коробки Эмма продаёт по
boxPriceза каждую. Прибавьте деньги кcoinsи выведитеcoinsс помощьюstring.formatс двумя знаками после запятой:Коробок: 4, яиц осталось: 3 Монеты: 58.00 - 3
Дедушка Джо возвращает Эмме монеты, которые был ей должен. Сумма записана в его записке,
joeNote, а это текст. Преобразуйте её с помощьюtonumber, прибавьте кcoinsи выведитеcoinsс помощью... В конце вы увидите.0:coinsстала float, когда вы прибавили деньги за коробки, потому чтоboxPrice— float.Коробок: 4, яиц осталось: 3 Монеты: 58.00 Монеты: 73.0 - 4
В блокноте Эмма записывает только целые монеты. Выведите
coinsещё раз с помощьюstring.formatи%d:Коробок: 4, яиц осталось: 3 Монеты: 58.00 Монеты: 73.0 В блокноте монет: 73