<< Click to Display Table of Contents >> Navigation: Multi-Protocol MasterOPC Server > Руководство по языку Lua 5.1 > Язык и синтаксис > Выражения > Операции сравнения |
Операции сравнения в Lua:
== ~= < > <= >=
Эти операции всегда возвращают false или true.
Сравнение на равенство (==) сначала сравнивает типы операндов. Если типы различны, то результатом будет false. Иначе сравниваются значения операндов. Числа и строки сравниваются обычным способом. Объекты (таблицы, пользовательские данные, потоки и функции) сравниваются по ссылке: два объекта считаются равными, только если они являются одним и тем же объектом. Создаваемый объект (таблица, пользовательские данные, поток или функция) не может быть равен ни одному из уже существующих.
Вы можете изменить способ, которым Lua сравнивает таблицы и пользовательские данные, используя метаметод "eq".
Правила преобразования ( Приведение типов ) HE работают в сравнениях на равенство. Например, "0"==0 вернет false, а t[0] и t["0"] обозначают различные записи в таблице.
Оператор ~= прямо противоположен оператору равенства (==).
Операторы сравнения "больше" и "меньше" работают следующим образом. Если оба параметра – числа, то они сравниваются как обычно. Если оба параметра – строки, то их значения сравниваются в соответствии с лексикографическим порядком. Во всех остальных ситуациях будет вызван метаметод "lt" или "le" .