Тема говорит обо всем. Я хотел бы знать, работает ли мой хост-интерпретатор Lua 5.2 или 5.1.
Есть ли в Lua функция, которая скажет мне, какую текущую версию я использую?
27.04.2013
- Ах... есть глобальная переменная с именем _VERSION: 28.04.2013
- World of Warcraft (8.2 Битва за Азерот):
5.1
10.07.2019
Ответы:
1
Есть глобальная переменная _VERSION (строка):
print(_VERSION)
-- Output
Lua 5.2
UPD:
Другие способы различения версий Lua:
if _ENV then
-- Lua 5.2
else
-- Lua 5.1
end
UPD2:
--[=[
local version = 'Lua 5.0'
--[[]=]
local n = '8'; repeat n = n*n until n == n*n
local t = {'Lua 5.1', nil,
[-1/0] = 'Lua 5.2',
[1/0] = 'Lua 5.3',
[2] = 'LuaJIT'}
local version = t[2] or t[#'\z'] or t[n/'-0'] or 'Lua 5.4'
--]]
print(version)
27.04.2013
2
Если вам также нужна третья цифра в версии Lua (недоступна в _VERSION
), вам нужно проанализировать вывод команды lua -v
в командной строке.
Для платформ, поддерживающих io.popen, этот скрипт подойдет, но только если скрипт запускается автономным интерпретатором (не в интерактивном режиме). IOW должна быть определена глобальная таблица arg
:
local i_min = 0
while arg[ i_min ] do i_min = i_min - 1 end
local lua_exe = arg[ i_min + 1 ]
local command = lua_exe .. [[ -v 2>&1]] -- Windows-specific
local fh = assert( io.popen( command ) )
local version = fh:read '*a'
fh:close()
-- use version in the code below
print( version )
print( version:match '(%d%.%d%.%d)' )
Обратите внимание, что lua -v
записывает stderr
в Windows (для Linux я не знаю), поэтому command
для io.popen (который захватывает только stdout
) должен перенаправлять stderr
в stdout
, а синтаксис зависит от платформы.
18.08.2013
lua -v
' записывает в stdout
с Lua 5.2, но в stderr
с Lua 5.1, но поскольку синтаксис перенаправления одинаков в оболочке (Bourne), вы можете использовать одну и ту же командную строку в Linux и Windows (и почти наверняка на OS X тоже). 27.09.2014
3
Новые материалы
Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..
Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом
Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..
Советы по коду Laravel #2
1-) Найти
// You can specify the columns you need
// in when you use the find method on a model
User::find(‘id’, [‘email’,’name’]);
// You can increment or decrement
// a field in..
Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv)
Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..
3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации —
2. Используя квадратичную формулу —
3. Заполнив квадрат —
Давайте поймем это, решив это простое уравнение:
Мы пытаемся сделать LHS,..
Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..
Демистификация рекурсии
КОДЕКС
Демистификация рекурсии
Упрощенная концепция ошеломляющей
О чем весь этот шум?
Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..
_ENV
может быть намеренно установлено наnil
. 28.04.2013math.pi
можно намеренно установить на3
:-) 28.04.2013Lua 5.2 or greater
, посколькуLua 5.3
также имеет глобальную переменную_ENV
. 17.01.20169^33 == 27^22
верно даже для LuaJit (по крайней мере, для LuaJit 2.0.4). 29.06.20189^33 == 27^22 true print(jit.version) LuaJIT 2.0.4
. Я следил за stackoverflow.com/questions/20335340. 30.06.2018if 0x123456789 == 0x987654321 then --Lua 5.1
12.07.2018