Size: a a a

2021 March 09

AZ

Aydar Zarifullin in pro.lua
Banschikov Denis
Всем привет! Подскажите, как можно в   Lua сделать  проверку  на то что строка не равна несколько значениям?
if event.log.remote_user ~= FOO|BAR then
   ......
Циклом
источник

NF

Nikolay Flitov in pro.lua
Можно через таблицу со значениями, и сделать функцию, которая будет проходится по этой таблице


function includes(tbl, item)
    for _, value in
ipairs(tbl) do
        if value == item then return true end
    end
end

print(includes({ 'foo', 'bar' }, event.log.remote_user)
источник

AZ

Aydar Zarifullin in pro.lua
Nikolay Flitov
Можно через таблицу со значениями, и сделать функцию, которая будет проходится по этой таблице


function includes(tbl, item)
    for _, value in
ipairs(tbl) do
        if value == item then return true end
    end
end

print(includes({ 'foo', 'bar' }, event.log.remote_user)
Переменную лучше не называть table
источник

NF

Nikolay Flitov in pro.lua
Ах да, забыл
источник
2021 March 10

AZ

Aydar Zarifullin in pro.lua
Nikolay Flitov
Можно через таблицу со значениями, и сделать функцию, которая будет проходится по этой таблице


function includes(tbl, item)
    for _, value in
ipairs(tbl) do
        if value == item then return true end
    end
end

print(includes({ 'foo', 'bar' }, event.log.remote_user)
И return false можно убрать
источник

AZ

Aydar Zarifullin in pro.lua
Nikolay Flitov
Можно через таблицу со значениями, и сделать функцию, которая будет проходится по этой таблице


function includes(tbl, item)
    for _, value in
ipairs(tbl) do
        if value == item then return true end
    end
end

print(includes({ 'foo', 'bar' }, event.log.remote_user)
И вообще ты по таблице-массиву проходишь тут ipairs нужен
источник

NF

Nikolay Flitov in pro.lua
Точно, спасибо!
источник

BD

Banschikov Denis in pro.lua
Спасибо
источник

O

Olegator in pro.lua
Aydar Zarifullin
Для бота нужен сервак как минимум.
Обычный vps
источник

️ ️️ in pro.lua
можно ли както изменить metatable для строки локально (в функции например)?

чтобы можно было индексировать строку внутрии функции или хотябы модуля

local str = 'qwe'
print(str[2])

через getmetatable('').__index меняется везде
источник

S

Snusmumriken in pro.lua
Не а ))
источник

S

Snusmumriken in pro.lua
Строковая метатаблица распространяется на весь луа-стейт.
источник

S

Snusmumriken in pro.lua
️ ️️
можно ли както изменить metatable для строки локально (в функции например)?

чтобы можно было индексировать строку внутрии функции или хотябы модуля

local str = 'qwe'
print(str[2])

через getmetatable('').__index меняется везде
А что ты хочешь? Чтобы условно только в твоей библиотеке у строк цифровая индексация была как у массивов, но чтобы всё остальное было таким же как было?
источник

️ ️️ in pro.lua
Snusmumriken
А что ты хочешь? Чтобы условно только в твоей библиотеке у строк цифровая индексация была как у массивов, но чтобы всё остальное было таким же как было?
да, типа того
источник

️ ️️ in pro.lua
Snusmumriken
Строковая метатаблица распространяется на весь луа-стейт.
а может можно както сделать свой тип унаследованый от строки?
источник

S

Snusmumriken in pro.lua
Если есть ffi — можешь запилить настоящие мутабельные сишные строки-массивы.
источник

️ ️️ in pro.lua
Snusmumriken
Если есть ffi — можешь запилить настоящие мутабельные сишные строки-массивы.
не, это просто конфиг вима
источник

S

Snusmumriken in pro.lua
️ ️️
да, типа того
Ну типа

local mystring = {}
mystring.__index = mystring

function mystring:new(str)
 return setmetatable({data = str}, self)
end

for k, v in pairs(string) do
 mystring[k] = function(self, ...)
   return v(self.data, ...)
 end
end

setmetatable(mystring, {__call = mystring.new})

Дальше навешиваешь свои функции.
Но заранее предупреждаю, что:
1. Возвращаемые данные будут нормальными строками, как у оригинальных функций;
2. Для каждой строки будет создаваться прокси-табличка.
источник

S

Snusmumriken in pro.lua
3. Если ты делаешь конфиг для своего личного вима, можешь смело менять строковую метатабличку. Хотя вим может начать работать несколько медленнее: __index-таблица сильно быстрее __index-функции.
источник

️ ️️ in pro.lua
так оно по всему виму юзается и затрагивает другие плагины
источник