Lua/Типы данных: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 93:
|
|}
 
=== boolean ===
Тип boolean может принимать два значения - true (истина) или false (ложь). Конечно же, мы можем задать их в переменной, но чаще это не имеет смысла, так как наиболее частые случаи использования boolean - условные конструкции, где проще использовать операторы сравнения (которые и будут возвращать boolean).
 
Истина возращается тогда, когда выражение является истинным (2+2 == 4 или 2+2 ~= 4), ложь является противоположным значением.
 
=== table ===
Тип table переставляет из себя ассоциативный массив (или словарь, если сравнивать с Python). Под массивом, мы могли бы понимать некий набор переменных. А если же говорить о ассоциативном массиве, то у переменных есть "ассоциация", то есть название, или правильнее - ключ. Есть еще последовательность: массив, ключи которого представляют из себя последовательные натуральные числа (от 1 до n, где n - последний ключ массива). В этом случае правильно было бы сказать, что в последовательности ключи являются индексами.
 
Чтобы создать тип table надо использовать конструкцию {}:<syntaxhighlight lang="lua">
Строка 127 ⟶ 132 :
print(a[#a]) --> напечает последний элемент (#a - значение последнего индекса для массива)
a[#a+1] = 15 --> добавляет еще один элемент в конец массива
</syntaxhighlight>
</syntaxhighlight>Мы разобрали наиболее элементарные типы данных в Lua. Другие типы данных являются специфичными и мы их рассмотрим в следующих главах.
 
</syntaxhighlight>Мы разобрали наиболее элементарные типы данных в Lua. Другие типы данных являются специфичными и мы их рассмотрим в следующих главах.
 
== Приведение типов. ==
Строка 167 ⟶ 174 :
print(25^(1/2)) --> 5
 
</syntaxhighlight>Операции сравнения всегда возвращают значение типа boolean: <!-- < > <= >= == ~= --><syntaxhighlight lang="lua">
a = 5
b = 10
Строка 182 ⟶ 189 :
</syntaxhighlight>Что интересно, в отличии от арифметических действий, операции сравнений можно использовать и при работе со строками. Строки сравниваются в алфавитном порядке:<syntaxhighlight lang="lua">
print("a" < "b") --> true
</syntaxhighlight>Если же вы хотите использовать более сложные конструкции из арифметических выражений, то вам либо придется использовать скобки, либо запомнить следующую список приоритетов: приоритет операции понижается сверху вниз
</syntaxhighlight>
 
* ^
* -, not, #
* %,*,/
* +,-
* ..
* Операции сравнения
* and
* or
 
Думаю, вы заметили, что приоритеты операций совпадают с приоритетом операций в математике. И все же, если у вас есть сомнения в том, какая операция имеет больший приоритет, то рекомендуем использовать скобки - это улучшит читаемость кода.