Size: a a a

2020 April 22

S

Snusmumriken in pro.lua
Или заранее созданная таблица.
источник

S

Snusmumriken in pro.lua
Snusmumriken
a = setmetatable({}, {__index = foo})
==
a = {}
b = {__index = foo}
setmetatable(a, b)
==
a = {}
setmetatable(a, {__index = foo})

Посмотри внимательно. Все три образца кода в целом делают одно и то же.

В первом случае — мы создаём начальника и подчинённого на месте, и тут же отправляем в функции.
В третьем — создаём начальника на месте, и цепляем к подчинённому.
Посмотри внимательно.
источник

S

Snusmumriken in pro.lua
Ещё внимательнее.
источник

A

Ameliance SkyMusic in pro.lua
это

tab1 = {}
tab2 = {}
setmetatable(tab1, {__index = tab2})
==
setmetatable(таблица_куда_положить, {__искать_значения_в_доп_таблице = доп_таблица})
?
источник

S

Snusmumriken in pro.lua
setmetatable(a, {__index = foo})
       скобочка^     скобочка^
Две скобочки вместе дают таблицу.
Которая в setmetatable указывается начальником для первой таблицы.
источник

A

Ameliance SkyMusic in pro.lua
Snusmumriken
Ты упорно в setmetatable пихаешь вторым аргументом что-то странное.
да я понял кажись, может неправильно выразился, вот сверху пример👆🏻
источник

S

Snusmumriken in pro.lua
Вот, да
источник

A

Ameliance SkyMusic in pro.lua
Snusmumriken
setmetatable(a, {__index = foo})
       скобочка^     скобочка^
Две скобочки вместе дают таблицу.
Которая в setmetatable указывается начальником для первой таблицы.
эм... если она начальник, то почему ищем сначала в детёныше?😊
источник

S

Snusmumriken in pro.lua
Потому что дитё сначала ищет проблему в себе, и только потом в других ))
источник

A

Ameliance SkyMusic in pro.lua
Спасибо тебе за терпение, если что)
источник

S

Snusmumriken in pro.lua
Не хочешь чтобы искало в себе — просто не заполняй дитё, пусть будет пустой таблицей.
источник

A

Ameliance SkyMusic in pro.lua
Snusmumriken
Не хочешь чтобы искало в себе — просто не заполняй дитё, пусть будет пустой таблицей.
ок, хорошее дите, обычно наоборот
источник

A

Ameliance SkyMusic in pro.lua
function extended(Child, Parent)
 setmetatable(Child,{__index = Parent})
end


{__index = Parent} — это таблица с таблицей?
источник

S

Snusmumriken in pro.lua
Ага
источник

A

Ameliance SkyMusic in pro.lua
а зачем двойная таблица?
источник

S

Snusmumriken in pro.lua
Начальник, который указывает дитю искать недостающее в Parent
источник

S

Snusmumriken in pro.lua
В Parent можно добавить поле Parent.__index = Parent, тогда его самого можно будет указывать начальником: инструкция для подчинённых появилась.
источник

A

Ameliance SkyMusic in pro.lua
Child = {a=10, b=20}
Parent = {c = 30}
function extended(Child, Parent)
 setmetatable(Child,{__index = Parent})
end
extended(Child, Parent)
-->
Child = {a=10, b=20, {__index = Parent = {c = 30}}
?
источник

S

Snusmumriken in pro.lua
Нет, setmetatable не добавляет ключи в детей-подчинённых. Там хитрая схема, метатаблица не оставляет видимых следов.
источник

f

fgntfg in pro.lua
Snusmumriken
Нет, setmetatable не добавляет ключи в детей-подчинённых. Там хитрая схема, метатаблица не оставляет видимых следов.
невидимый убийца
источник