Size: a a a

2020 April 21

A

Ameliance SkyMusic in pro.lua
Snusmumriken
Да, да.
в первом вопросе есть или
источник

S

Snusmumriken in pro.lua
Ответ на оба вопроса.
источник

S

Snusmumriken in pro.lua
mt = {__index = foo} -- это обычный конструктор таблиц, то что написано на упаковке.

А setmetatable возвращает первый переданный в неё аргумент.
источник

A

Ameliance SkyMusic in pro.lua
Snusmumriken
Ответ на оба вопроса.
1. одновременно присваиваются значения и добавляются ключи?
источник

S

Snusmumriken in pro.lua
Не бывает ключа без значения (точнее, бывает, но всё неопределённое — nil).
Создаётся табличка и наполняется ключами-значениями.
источник

S

Snusmumriken in pro.lua
Ну ты же знаешь что можно делать так:
t = {1, 2, 3, 4, 5}?

Это примерно то же что и
t = {[1] = 1, [2] = 2, [3] = 3, [4] = 4, [5] = 5}

На самом деле не в точности то же (байткод чуть-чуть разный), но для тебя разницы тут никакой нет.
источник

S

Snusmumriken in pro.lua
И вот в том случае — мы такие:

mt = {
 __index = foo,
 -- или ["__index"] = foo,
}
источник

A

Ameliance SkyMusic in pro.lua
Snusmumriken
mt = {__index = foo} -- это обычный конструктор таблиц, то что написано на упаковке.

А setmetatable возвращает первый переданный в неё аргумент.
я просто привык его видеть как-то так (функцию, которую я одолжил, когда делал библиотеку для кнопок.. теперь хочу понять как оно работает)
источник

S

Snusmumriken in pro.lua
Ну вот тут при каждом extend — создаётся таблица, которая цепляется метатаблицей к Child, и указывает Child'у искать недостающие ключи по __index в Parent.
источник

S

Snusmumriken in pro.lua
Фигурные скобочки — это конструктор таблиц. При каждом использовании фигурных скобочек — создаётся новая таблица. Её можно заполнять ключами как в процессе инициализации, так и после.
источник

S

Snusmumriken in pro.lua
А вот так делать нельзя:
foo = {key = foo}
Потому что значение, присваиваемое key к моменту присваивания ещё не создано ))
Только так:
foo = {}
foo.key = foo
источник

A

Ameliance SkyMusic in pro.lua
вот мой сильно урезанный код из библиотеки... вроде пару строчек, но мозг уже рушится, местами никак не могу понять что местами происходит
источник

AY

Arslan Yulbirdin in pro.lua
Можно ли создать создать таблицу (средствами луа), которая полностью копирует строки луа, но хранится будет в utf-8?
источник

S

Snusmumriken in pro.lua
Ameliance SkyMusic
вот мой сильно урезанный код из библиотеки... вроде пару строчек, но мозг уже рушится, местами никак не могу понять что местами происходит
А, это уже для самостоятельной работы. Если я буду объяснять, ничего понятнее не станет.

Первым делом, попробуй убрать двоеточия, и заменить их точками с self при инициализации, и точкой с elem при вызове.
источник

S

Snusmumriken in pro.lua
Arslan Yulbirdin
Можно ли создать создать таблицу (средствами луа), которая полностью копирует строки луа, но хранится будет в utf-8?
В смысле {"П", "р", "и", "в", "е", "т"}?
источник

AY

Arslan Yulbirdin in pro.lua
Да
источник

S

Snusmumriken in pro.lua
Можно.
источник

A

Ameliance SkyMusic in pro.lua
Snusmumriken
А, это уже для самостоятельной работы. Если я буду объяснять, ничего понятнее не станет.

Первым делом, попробуй убрать двоеточия, и заменить их точками с self при инициализации, и точкой с elem при вызове.
да, в комментариях себе так упрощяю... пока мозг на лету не воспринимает тратата.тата и тарата['тата'], как нечто разное не говоря о двоеточиях😅
источник

S

Snusmumriken in pro.lua
Цепляй библиотеку utf8, разделяй посимвольно чем-то таким:
local utf8 = require'utf8'

local t = {}

for code in utf8.codes("Привет") do
 local char = utf8.char(code)
 table.insert(t, char)
end
источник

AY

Arslan Yulbirdin in pro.lua
По-моему она криво разделяет юникод
источник