Size: a a a

2019 November 01

D

Dmitriy in pro.lua
спасибо за совет, учту. вопрос правда был в поведении busted.
источник

S

Snusmumriken in pro.lua
Ничего не передалось в sum(arg, ...), и total стал nil.
источник

D

Dmitriy in pro.lua
я как начинающий не понимаю, почему «не передалось» — тест по идее должен запускать функцию с переданными параметрами?
источник

D

Dmitriy in pro.lua
а задано запустить конкретную функцию с конкретным параметром, разве нет?
источник

S

Snusmumriken in pro.lua
Запускаешь и тестишь в одной и той же среде?
источник

D

Dmitriy in pro.lua
Тест запускается в консоли командой busted, текст теста я привёл. Насколько я понимаю, задача сравнить на равенство строку и результат вызова функции с параметром. Какого лешего busted начал вызывать вложенную функцию?
источник

D

Dmitriy in pro.lua
я уже починил всё, написав рекурсивную функцию сложения с переменными аргументами,  на которую не ругается, но всё равно не ясно в чём ошибка...
источник

S

Snusmumriken in pro.lua
Во, совсем забыл. Ты ещё объявляешь функцию sum глобально, и каждый раз при вызове минимакса.
источник

S

Snusmumriken in pro.lua
А зачем оно тебе именно в таком виде? Прогони мой вариант в бустеде, скажи что ответит ))
источник

S

Snusmumriken in pro.lua
П.С. Надеюсь это не пойдёт в прод.
источник

D

Dmitriy in pro.lua
бгг. я второй день играюсь с Lua, какой прод
источник

S

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

S

Snusmumriken in pro.lua
Если выводить мин-максы четырёх значений из пяти, то опять таки, зачем unpack и прочие рекурсии? Указываешь цифрами диапазон цикла через for i = _start, _end do. Переменные аргументы это весело, но как правило не нужно.
источник

S

Snusmumriken in pro.lua
Где переменные аргументы прям рулят, так это в логировании и в колбеках:
function log(level, msg, ...)
 if ... then msg = msg:format(...) end
 print(level .. ' ' .. msg)
end

function callSomething(func, ...)
 local res = {xpcall(func, debug.traceback, ...)}
 if res[1] then
   return (table.unpack or unpack)(res, 2)
 end
 return nil, res[2]
end
источник

MT

Monsieur Taishín in pro.lua
Snusmumriken
Что тут было?
Девки. С большими "луа"
источник

D

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

S

Snusmumriken in pro.lua
Общее решение ломается об реальность в виде лимита аргументов в функциях. Как только в табличке окажется 5-10к значений — всё умрёт, причём незаметно.
источник

D

Dmitriy in pro.lua
good point
источник

S

Snusmumriken in pro.lua
В моём примере callSomething, гарантированно можно использовать unpack потому, что это распаковка результатов возвращённых функцией. То есть, тут по умолчанию все лимиты соблюдены. Функция просто не вернёт больше аргументов, чем зашито в луа.
источник

D

Dmitriy in pro.lua
спасибо, было полезно
источник