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 = fooA

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)
endAY