local i1 = 1
print(i1)
local i2 = 1,0
print(i2)
local i3 = 1,
print(i3)
结果:
1
1
nil
为什么i3为零?
答案 0 :(得分:6)
除少数例外,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'
答案 1 :(得分:-2)
同意 Mankarse 的响应,如果您在变量的内容后加上逗号而没有结束符,系统将认为该变量的内容仍在运行,并且由于您无法访问变量中的变量,变量的内容,则打印结果为nil。因此是解决它的好方法,
local i1 = 1
print(i1)
local i2 = 1,0
print(i2)
local i3 = 1
print(i3)
只需在,
之后删除1