lua - 为什么这个lua变量是nil,如果赋值语句后跟一个“,”
问题描述
local i1 = 1
print(i1)
local i2 = 1,0
print(i2)
local i3 = 1,
print(i3)
结果:
1
1
nil
为什么 i3 是零?
解决方案
除了少数例外,Lua 会忽略空格和换行符。如果删除换行符,您将拥有:
local i3 = 1, print(i3)
您的打印是在分配执行之前i3
执行的。
根据Lua 5.3 手册的§3.3.3 :
赋值语句首先计算其所有表达式,然后才执行赋值。
i3
最终设置为1
:
local i1 = 1
print(i1) --Prints '1'
local i2 = 1,0
print(i2) --Prints '1'
local i3 = 5
local i3 = 1,
print(i3) --Prints '5'
print(i3) --Prints '1'