Сырой идеи структуры нет в Lua, но таблицы служат аналогичной цели.
Использование таблиц:
local font = {
["1"] = {0x2, 0x6, 0x2, 0x2, 0x2},
["2"] = {0xe, 0x1, 0x6, 0x8, 0xf}
}
Это может быть доступ к font[letter][x]
или font.letter[x]
. Имейте в виду, что Lua массивы не нулевой индекс, поэтому х начинается с 1.
Если вам нужно немного больше структура, то вы можете использовать функцию для построения таблицы:
local function charmatrix(c, l1, l2, l3, l4, l5)
return {[c] = { l1, l2, l3, l4, l5 }}
end
local font = {
charmatrix("1", 0x2, 0x6, 0x2, 0x2, 0x2),
charmatrix("2", 0xe, 0x1, 0x6, 0x8, 0xf),
}
но это может быть излишним.
Edit: Если вы хотите сохранить line
в коде можно построить таблицу следующим образом:
local font = {
["1"] = { line = {0x2, 0x6, 0x2, 0x2, 0x2} },
["2"] = { line = {0xe, 0x1, 0x6, 0x8, 0xf} }
}
Accessed font[letter].line[x]
или font.letter.line[x]
.
Обратите внимание, что ключи, которые являются строками, не нуждаются в котировках при определении, кроме числовых строк, поэтому line
не окружен кавычками, где "1"
и "2"
есть. (Таким образом, вы можете получить доступ с кодом: font[letter]["line"][x]
)
'' 1 "=' недействителен синтаксис lua. вам нужно будет поставить '[]' вокруг него. – daurnimator
Я не уверен, почему вы цитируете '" 1 "и' "2" '. '[1] = ..., [2] = ...' будет более понятным. И на самом деле вам не нужно указывать индексы, просто напишите 'local font = {{0x2, 0x6, 0x2, 0x2, 0x2}, {0xe, 0x1, 0x6, 0x8, 0xf}}' –
Обратите внимание, что 'font .letter' не будет работать здесь, поскольку 'letter' является' '1" 'или' "2" '. – hjpotter92