Вы реализовали бесконечную рекурсию
Функция print
вызывает сама себя. Поэтому, когда вы вызываете print
, ваша программа в первый раз оказывается в ловушке бесконечной рекурсии. В какой-то момент ваша программа потерпит крах, потому что ваш стек заполнен.
Вы не увидите никакого вывода, потому что переписали стандартную функцию Lua print
. Следовательно, ваша функция не может создать вывод на консоль.
printResult = ""
-- the following code defines a print function that calls itself
function print(...)
for i,v in ipairs(arg) do
printResult = printResult .. tostring(v) .. "\t"
end
printResult = printResult .. "\n"
-- here you call the function you're just defining
print(printResult)
end
-- here you call print the first time which will call itself again and again...
print(...)
Некоторые решения:
a) не вызывать вашу функцию print
, поэтому вы все равно можете вызывать Lua's print
function myPrint(...)
print("lalala")
end
b) создать новую ссылку на Lua print
, перед тем как создать новую ссылку print
на вашу функцию
local luaPrint = print
function print(...)
luaPrint("lalala")
end
c) не использовать print
внутри вашей функции
function print(...)
io.write("lalala")
end