A
Size: a a a
A
S
S
mt = {__index = foo}
-- это обычный конструктор таблиц, то что написано на упаковке.setmetatable
возвращает первый переданный в неё аргумент.A
S
S
t = {1, 2, 3, 4, 5}
?t = {[1] = 1, [2] = 2, [3] = 3, [4] = 4, [5] = 5}
На самом деле не в точности то же (байткод чуть-чуть разный), но для тебя разницы тут никакой нет.S
mt = {
__index = foo,
-- или ["__index"] = foo,
}
A
mt = {__index = foo}
-- это обычный конструктор таблиц, то что написано на упаковке.setmetatable
возвращает первый переданный в неё аргумент.S
extend
— создаётся таблица, которая цепляется метатаблицей к Child
, и указывает Child
'у искать недостающие ключи по __index
в Parent
.S
S
foo = {key = foo}
key
к моменту присваивания ещё не создано ))foo = {}
foo.key = foo
A
AY
S
self
при инициализации, и точкой с elem
при вызове.S
{"П", "р", "и", "в", "е", "т"}
?AY
S
A
self
при инициализации, и точкой с elem
при вызове.тратата.тата
и тарата['тата']
, как нечто разное не говоря о двоеточиях😅S
local utf8 = require'utf8'
local t = {}
for code in utf8.codes("Привет") do
local char = utf8.char(code)
table.insert(t, char)
end
AY