Я хотел был бы иметь возможность сделать программу для ComputerCraft с использованием MoonScript, но из-за того, что CC изолирован для предотвращения проблем безопасности на серверах Minecraft и т. Д., Я не могу требовать moonscript непосредственно и запустить код moonscript оттуда. Я должен преобразовать свой код moonscript в lua.Lua output для классов moonscript MASSIVE
Это проблематично, однако, из-за того, что реализация класса для moonscript очень велика и не очень консервативна для файлов. Когда я типа «класса Бекон», он выдает это за Lua:
local Bacon
do
local _parent_0 = nil
local _base_0 = { }
_base_0.__index = _base_0
if _parent_0 then
setmetatable(_base_0, _parent_0.__base)
end
local _class_0 = setmetatable({
__init = function(self, ...)
if _parent_0 then
return _parent_0.__init(self, ...)
end
end,
__base = _base_0,
__name = "Bacon",
__parent = _parent_0
}, {
__index = function(cls, name)
local val = rawget(_base_0, name)
if val == nil and _parent_0 then
return _parent_0[name]
else
return val
end
end,
__call = function(cls, ...)
local _self_0 = setmetatable({}, _base_0)
cls.__init(_self_0, ...)
return _self_0
end
})
_base_0.__class = _class_0
if _parent_0 and _parent_0.__inherited then
_parent_0.__inherited(_parent_0, _class_0)
end
Bacon = _class_0
return _class_0
end
И это для каждая реализация класса, который является своего рода смешно. Есть ли способ сократить это в моем тексте moonscript?
Почему вы беспокоитесь о размере кода Lua? Почему бы не просто скопировать-вставить длинный код? Имеет ли ограничение по размеру программы ComputerCraft? –
Это совсем не «МАССИВ». Если вы действительно беспокоитесь об этом, возможно, вы можете попробовать удалить пробелы. И, как сказал Егор, размер файла практически не имеет значения. – ECrownofFire