Size: a a a

2020 November 06

IA

Ivan Azoyan in pro.lua
грубо говоря, мне метатаблица и __call не нужны
источник

IA

Ivan Azoyan in pro.lua
но не хочу такой библиотечный код:
function Ema:next() end
function Ema:reset() end

function Ema:new(period)
   local ema = {}
   ema.next = self.next --link to function
   ema.reset = self.reset --link to function
   return ema
end
источник

IA

Ivan Azoyan in pro.lua
то есть я понимаю, что надо пройтись циклом по self и скопировать в ema все key/value
источник

VG

Vladislav Grubov in pro.lua
Ну, что-нибудь типа этого можно:
local Ema = {}

local methods = {}
local metatable = { __index = methods }

function methods:reset()

end

function methods:next()

end

function Ema:new()
return setmetatable({}, metatable)
end

return  setmetatable(Ema, { __call = Ema.new })
источник

VG

Vladislav Grubov in pro.lua
Или хотите совсем без метатаблиц, просто методы скопировать в объект?
источник

IA

Ivan Azoyan in pro.lua
можно с ними)
источник

IA

Ivan Azoyan in pro.lua
нормал мне подходит, спасибо
источник

S

Snusmumriken in pro.lua
Ivan Azoyan
парни, можно как-то сделать, чтобы не делать:
setmetatable(Ema, {
   __call = function(cls, ...)
       local self = setmetatable({}, cls)
       self:new(...)
       return self
   end
})
хочу, чтобы клиентский код вот так работал:
local ema = Ema:new(3) -- а не
local ema = Ema(3)
--как с __call
function Ema:new(a, b, c)
 self = setmetatable({}, self)
 self.x, self.y = a, b+c
 return self
end
setmetatable(Ema, {__call = Ema.new})
источник

IA

Ivan Azoyan in pro.lua
где?
источник

IA

Ivan Azoyan in pro.lua
ладно, я понял
источник

S

Snusmumriken in pro.lua
Ну прост Ema теперь можно вызывать как Ema:new(a, b, c) и как Ema(a, b, c) с идентичным результатом.
источник

IA

Ivan Azoyan in pro.lua
не, лан
источник

H

Hello, World! in pro.lua
Кто подскажет как отправлять запросы на сервер get, post ?
источник

S

Snusmumriken in pro.lua
Hello, World!
Кто подскажет как отправлять запросы на сервер get, post ?
luasocket:
local http = require"socket.http"

local response, status, headers = http.request{
 url = "http://yandex.ru"
 verb = "post",
 body = "hello",
}

Для https — ещё и luasec, а вместо require"socket.http"require"ssl.https", но остальное там примерно такое же.
источник

H

Hello, World! in pro.lua
Snusmumriken
luasocket:
local http = require"socket.http"

local response, status, headers = http.request{
 url = "http://yandex.ru"
 verb = "post",
 body = "hello",
}

Для https — ещё и luasec, а вместо require"socket.http"require"ssl.https", но остальное там примерно такое же.
встроенная библиотека?
источник

S

Snusmumriken in pro.lua
Нет.
источник

H

Hello, World! in pro.lua
А как установить?
источник

S

Snusmumriken in pro.lua
Взять и установить ))
источник

H

Hello, World! in pro.lua
Snusmumriken
Взять и установить ))
А как это будет на луа?
источник

S

Snusmumriken in pro.lua
Берёшь такой и ставишь. У тебя какой интерпретатор? Чистый? Стороннее приложение? Какая ОС? Какая разрядность интерпретатора? Какая версия интерпретатора с точностью до минорной?
источник