Charsi 441 Опубликовано 23 Сентября 2014 "return" без аргумента возвращает 0 значений. "return nil" возвращает одно значение, равное nil. Трактовка возвращаемого значения зависит от конкретного контекста. Пусть будет, например, выше упомянутый type. print(pcall(type,loadstring"return nil"())) --> true nil print(pcall(type,loadstring"return"())) --> false bad argument #1 to '?' (value expected) do local _type = type type = function(arg) return arg and _type(arg) or "nil" end end print(pcall(type,loadstring"return"())) --> true nil 1 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Поделиться этим сообщением Ссылка на сообщение
Charsi 441 Опубликовано 7 Мая 2015 При работе с таблицей следует придерживаться одного из двух стилей: - только как с обычным массивом, используя table.insert\remove и т.д. - только как с ассоциативным массивом, используя оператор индексации. Смешивать их не стоит. В SciTE с Lua 5.1 проблемы нет. А современный Lua - версии 5.3 - ругается на вставку элемента с помощью table.insert за пределы границ - bad argument #2 to 'insert' (position out of bounds). Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Поделиться этим сообщением Ссылка на сообщение
Charsi 441 Опубликовано 17 Декабря 2015 (изменено) for sgn, fn, args in s:gmatch("([%+%-])([%w_]+)%s*%(?([^%)%+%-]*)") do print(sgn, fn, args) end Изменено 17 Декабря 2015 пользователем Charsi Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Поделиться этим сообщением Ссылка на сообщение
Charsi 441 Опубликовано 30 Января 2016 function call_string(obj, method, ...) return obj[method](obj, ...) end 1 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Поделиться этим сообщением Ссылка на сообщение
Charsi 441 Опубликовано 31 Января 2016 (изменено) Можно написать свой итератор, который создает массив ключей, упорядочивает его нужным образом и выдает при вызове ключ из этого массива и его значение. local t = {["A"] = "a", ["B"] = "b", ["C"] = "c", ["D"] = "d"} function asc_iter(t) local pos = 0 local keys = {} for k in pairs(t) do table.insert(keys, k) end table.sort(keys) return function() pos = pos + 1 return keys[pos], t[keys[pos]] end end for k, v in asc_iter(t) do print(k, v) end Изменено 31 Января 2016 пользователем Charsi 1 1 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Поделиться этим сообщением Ссылка на сообщение
Charsi 441 Опубликовано 31 Января 2016 Сортировка как раз и устанавливает порядок доступа. В хеш-массиве никакой упорядоченности быть не может. Если ключ это объект или таблица, то в table.sort вторым аргументом можно передать функцию, реализующую упорядочивание таких ключей. Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Поделиться этим сообщением Ссылка на сообщение
Charsi 441 Опубликовано 1 Февраля 2016 @Graff46, можно так: os.execute("copy path_from path_to"). Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Поделиться этим сообщением Ссылка на сообщение
Charsi 441 Опубликовано 4 Февраля 2016 @Graff46, не совсем ясно - тебе нужно 4 символа непосредственно после первого вхождения заданной подстроки: local file = io.open(path) if file then result = file:read("*a"):match("substring(....)") file:close() else print("can't read file: "..path) end или первые 4 символа из строки, следующей за найденной. Во втором случае шаблон в match будет "substring.-\n(....)". Если искомая подстрока содержит магические символы, то их следует экранировать символом %. 1 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Поделиться этим сообщением Ссылка на сообщение
Charsi 441 Опубликовано 4 Февраля 2016 @Graff46, тогда берем буквы и в конце цифру: match("seoson_(%a+%d)") 1 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Поделиться этим сообщением Ссылка на сообщение
Charsi 441 Опубликовано 11 Июля 2016 @Kober(BRUC), one:match("(.)$") 1 1 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Поделиться этим сообщением Ссылка на сообщение
Charsi 441 Опубликовано 24 Марта 2018 @Graff46 local gg = game_graph() local myvar = gg.vertex local lastGvid = 3131 for i = 1, lastGvid do myvar(gg, i) end 1 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Поделиться этим сообщением Ссылка на сообщение