объединить две строки в одну таблицу в Lua - PullRequest
1 голос
/ 05 ноября 2019

У меня есть 2 строки:

fields="a,b,c,d,e"

values="1,2,,4,5"

Мне нужна таблица, чтобы получить такие значения пар:

print(result.a) -> "1"

print(result.c) -> "" (or nil)

Возможно ли это?

1 Ответ

1 голос
/ 06 ноября 2019

Здесь есть возможность использовать генераторы без цикла for. Приведенный ниже код запускает два генератора gmatch в тандеме.

fields="a,b,c,d,e"
values="1,2,,4,5"

fields=fields.."," ; F=fields:gmatch("(.-),")
values=values.."," ; V=values:gmatch("(.-),")

result={}
while true do
    local k,v=F(),V()
    if k==nil or v==nil then break end
    result[k]=v
end

for k,v in pairs(result) do print(k,v) end
...