Версия:

Разное

Разное

Индекс

Ниже приведен перечень разных доступных функций.

Имя Использование
tonumber64() Конвертация строки или Lua-числа в 64-битное целое число
dostring() Анализ и выполнение произвольного Lua-кода
tonumber64(value)

Конвертация строки или Lua-числа в 64-битное целое число. Входное значение может быть выражено десятичным, двоичным (например, 0b1010) или шестнадцатеричным (например, -0xffff) числом. Результат может использоваться в арифметике, причем скорее в 64-битной целочисленной арифметике, а не в арифметике в системе с плавающей запятой. (Операции с неконвертированными Lua-числами выполняются в арифметике в системе с плавающей запятой.) Функция tonumber64() в Tarantool’е является глобальной.

Пример:

tarantool> type(123456789012345), type(tonumber64(123456789012345))
 ---
 - number
 - number
 ...
 tarantool> i = tonumber64('1000000000')
 ---
 ...
 tarantool> type(i), i / 2, i - 2, i * 2, i + 2, i % 2, i ^ 2
 ---
 - number
 - 500000000
 - 999999998
 - 2000000000
 - 1000000002
 - 0
 - 1000000000000000000
 ...
dostring(lua-chunk-string[, lua-chunk-string-argument ...])

Анализ и выполнение произвольного Lua-кода. Данная функция используется преимущественно для определения и выполнения Lua-кода без необходимости внесения изменений в глобальное Lua-окружение.

Параметры:
  • lua-chunk-string (string) – Lua-код
  • lua-chunk-string-argument (lua-value) – ноль или другие скалярные значения, которые заменяются или к которым прибавляются значения.
возвращается:

то, что возвращает Lua-код.

Возможные ошибки: Ошибка компиляции появляется как Lua-ошибка.

Пример:

tarantool> dostring('abc')
 ---
 error: '[string "abc"]:1: ''='' expected near ''<eof>'''
 ...
 tarantool> dostring('return 1')
 ---
 - 1
 ...
 tarantool> dostring('return ...', 'hello', 'world')
 ---
 - hello
 - world
 ...
 tarantool> dostring([[
          >   local f = function(key)
          >     local t = box.space.tester:select{key}
          >     if t ~= nil then
          >       return t[1]
          >     else
          >       return nil
          >     end
          >   end
          >   return f(...)]], 1)
 ---
 - null
 ...