Size: a a a

2021 July 26

ВГ

Виктор Гриневский 🐧... in pro.lua
источник

ВГ

Виктор Гриневский 🐧... in pro.lua
Статическая?
источник

L

Leon174 in pro.lua
Глядишь и в luajit меньше магии бы понадобилось.
источник

ВГ

Виктор Гриневский 🐧... in pro.lua
Там в IR она как раз есть)
источник

S

Snusmumriken in pro.lua
С реализацией типизации кстати в любом случае есть проблемы, под названием "грёбаный компилятор". Иначе будет падать только и исключительно на проверках (которые жрут цпу) при исполнении.
источник

M

Mike_Went in pro.lua
да хоть какая
источник

ВГ

Виктор Гриневский 🐧... in pro.lua
type(var) чёт отдавать умеет)
источник

L

Leon174 in pro.lua
Хоть какая и так есть (динамическая), речь про статику. Я за опциональную.
источник

M

Mike_Went in pro.lua
да это пародия на типизацию. слишком часто луа падает в рантайме. возможно я говнокодер просто
источник

M

Mike_Went in pro.lua
естественно опциональную
источник

ВГ

Виктор Гриневский 🐧... in pro.lua
ctype вот есть ещё)
источник

S

Snusmumriken in pro.lua
Ну Леон предлагает аналог "проверки аргументов", мол
function foo(table bar, number n, somevar) end
чтобы при попытке вызова без таблицы и числа первыми аргументами оно бы заорало: "не те аргументы!!1"
источник

M

Mike_Went in pro.lua
мне нравится луа, но там проблема как в питоне: можно отдать не то не туда и всё свалится, когда в нормальном языке такое даже не запустится
источник

M

Mike_Went in pro.lua
да, было бы чудесно
источник

S

Snusmumriken in pro.lua
Это проблема абсолютно любой динамики, всё надо проверять, не отдавать лишнего и т.д. Динамические языки требуют самодисциплины.
источник

M

Mike_Went in pro.lua
и как предлагаешь проверять-то? :D
источник

S

Snusmumriken in pro.lua
local function ctype(v, t)
 assert(type(v) == t)
end

function foo(bar, n, somevar)
 ctype(bar, "table")
 ctype(n, "number")
 ...
end
источник

ВГ

Виктор Гриневский 🐧... in pro.lua
Ну можно врапать функции или через debug.getinfo извлекать аргументы. А их уже можно проверять. То есть чуть подколхозить придётся, но если это сильно бустанёт стабильность решения - чего бы нет
источник

M

Mike_Went in pro.lua
ну это же хтонические костылепеды.
в каждой функции проверять?
вручную вот так вот?
источник

S

Snusmumriken in pro.lua
Да :)
источник