Обработчик | Оператор Lua | Примечание |
---|---|---|
__add(op1, op2) | + | сложение |
__sub(op1, op2) | - | вычитание |
__mul(op1, op2) | * | умножение |
__div(op1, op2) | / | деление |
__mod(op1, op2) | % | деление по модулю |
__pow(op1, op2) | ^ | возведение в степень |
__unm(op) | - | унарный минус |
__concat(op1, op2) | .. | конкатенация (склейка) |
__len(op) | # | унарный оператор взятия длины |
__eq(op1, op2) | == | оператор "равно" |
__lt(op1, op2) | < | оператор "меньше" |
__le(op1, op2) | <= | оператор "меньше либо равно" |
__index(op, key) | [] | оператор обращения по ключу вызовется если, например, вызвать local x = data1[1] |
__newindex(op, key, value) | [] | оператор присвоения нового значения по ключу если сделать эту функцию пустой, то таблица станет "readonly", то есть в нее нельзя будет добавить новое поле со значением вызовется если, например, вызвать data1[1] = 1 |
__call(op, ...) | () | оператор вызова функции вызовется если, например, вызвать data1(1, 2, 3) в обработчик __call первым параметром придет операнд (в нашем случае data1), а следующими параметрами будут те параметры, что стояли в скобках (в нашем случае 1, 2, 3). |