Lua - Операторы

Здравствуйте, начинающие программисты! Сегодня мы отправимся в увлекательное путешествие в мир операторов Lua. Не волнуйтесь, если вы никогда раньше не программировали – я буду вашим доброжелательным проводником, и мы шаг за шагом изучим эту тему. К концу урока вы будете manipulate данные, как профессионaл!

Lua - Operators

Арифметические операторы

Давайте начнем с чего-то знакомого: математики! Lua предоставляет нам арифметические операторы, которые работают так же, как и те, что вы использовали на уроках математики.

Основные арифметические операторы

Вот таблица основных арифметических операторов в Lua:

Оператор Описание Пример
+ Сложение 5 + 3 = 8
- Вычитание 10 - 4 = 6
* Умножение 3 * 4 = 12
/ Деление 20 / 5 = 4
% Остаток от деления 17 % 5 = 2
^ Степень 2 ^ 3 = 8

Давайте посмотрим, как они работают:

print(5 + 3)  -- Вывод: 8
print(10 - 4) -- Вывод: 6
print(3 * 4)  -- Вывод: 12
print(20 / 5) -- Вывод: 4
print(17 % 5) -- Вывод: 2
print(2 ^ 3)  -- Вывод: 8

Каждая строка выполняет другую арифметическую операцию и выводит результат. Символ -- указывает на комментарий, который игнорируется Lua, но помогает нам понять код.

Оператор остатка от деления

Оператор остатка от деления (%) может быть новым для некоторых из вас. Он дает остаток после деления. Представьте его как вопрос: "Если я разделю эти числа, что останется?" Например, когда мы делим 17 на 5, мы получаем 3 с остатком 2. Вот почему 17 % 5 равен 2.

Реляционные операторы

Теперь перейдем к реляционным операторам. Эти операторы используются для сравнения значений и всегда дают результат true или false.

Оператор Описание Пример
== Равно 5 == 5 истина
~= Не равно 5 ~= 4 истина
> Больше чем 7 > 3 истина
< Меньше чем 2 < 8 истина
>= Больше или равно 5 >= 5 истина
<= Меньше или равно 4 <= 4 истина

Давайтеtry эти:

print(5 == 5)  -- Вывод: true
print(5 ~= 4)  -- Вывод: true
print(7 > 3)   -- Вывод: true
print(2 < 8)   -- Вывод: true
print(5 >= 5)  -- Вывод: true
print(4 <= 4)  -- Вывод: true

Помните, в Lua мы используем ~= для "не равно", что differs от некоторых других языков программирования, которые используют !=.

Логические операторы

Логические операторы используются для combine условных предложений. Они похожи на "и", "или" и "нет" в повседневном языке.

Оператор Описание
and Истина, если оба операнда истина
or Истина, если хотя бы один операнд истина
not Изменяет логическое состояние

Вот как мы их используем:

print(true and false)  -- Вывод: false
print(true or false)   -- Вывод: true
print(not true)        -- Вывод: false

-- Мы можем использовать их с переменными тоже
local x = 5
local y = 10
print(x < 10 and y > 5)  -- Вывод: true
print(x > 10 or y < 5)   -- Вывод: false

В последнем примере x < 10 and y > 5 истина, потому что оба условия истины: x меньше 10, и y больше 5.

Прочие операторы

Lua имеет несколько других операторов, которые не вписываются в предыдущие категории:

Оператор Описание Пример
.. Конкатенация (соединение строк) "Hello " .. "World" = "Hello World"
# Оператор длины #"Hello" = 5

Давайте посмотрим, как они работают:

print("Hello " .. "World")  -- Вывод: Hello World
print(#"Hello")             -- Вывод: 5

Оператор конкатенации (..) super полезен, когда вы хотите combine строки. Оператор длины (#) говорит вам, сколько символов в строке.

Приоритетность операторов в Lua

Как и в математике, Lua имеет порядок операций. Вот приоритетность от самого высокого до самого низкого:

  1. ^
  2. not # - (унарный)
    • /
  3. ..
  4. < > <= >= ~= ==
  5. and
  6. or

Это означает, что в выражении 2 + 3 * 4, Lua сначала выполнит умножение (3 * 4 = 12), а затем сложение (2 + 12 = 14).

Если вы хотите изменить порядок, вы можете использовать скобки. Например:

print(2 + 3 * 4)     -- Вывод: 14
print((2 + 3) * 4)   -- Вывод: 20

Во второй строке, скобки tell Lua выполнять сложение сначала, а затем умножать результат на 4.

И вот оно! Вы только что сделали первые шаги в мир операторов Lua. Помните, практика makes perfect. Попробуйте combine эти операторы по-разному и посмотрите, что произойдет. Не бойтесь犯错 – это как мы учимся!

За годы преподавания я обнаружил, что лучшие программисты – это те, кто не боится экспериментировать. Так что вперед, играйте с этими операторами и смотрите, что вы можете создать. Кто знает? Вы можете стать следующим великолепным программистом Lua!

Credits: Image by storyset