Я работаю с Lua 5.0, то, что озадачивает меня почему следующий код работает:Lua общий для цикла спецификации
for i in {first=1,second=2,third=3} do
print(i)
end
Он печатает «первый», «второй», «третий». Однако, согласно онлайн-программированию в Lua для 5.0 «Первое, что нужно сделать, - это оценить выражения после in. Эти выражения должны приводить к трем значениям, сохраненным функцией for: iterator, инвариантным состоянием и начальное значение для управляющей переменной. "
В этом случае выражение после in является просто таблицей. Он не будет оценивать (функция, состояние, начальное значение), и любой последующий вызов будет вызовом самой таблицы. Но приведенный выше пример работает, почему?
Lua 5.0 все еще ?? – lhf