Нет, meta
ничего не возвращает - по крайней мере, ничего важного.
Выходные данные, передаваемые в переменную i
внешнего цикла, поступают из метода yield
, а не из возврата.
Вы можете увидеть это, если напишите цикл следующим образом:
for i in coroutine.wrap(function()
val = {meta()}
print ("----")
print (val)
end) do
print(i)
end
Выход
1
2
3
4
5
6
7
8
9
10
----
nil
Аномальная функция, как и meta
, вызывается только один раз.