如果counterFlag [name]小于0,我试图将计数器设置为0.
if counterFlag[name] <== 0 then
counterFlag[name] = 0
end
我怎么能这样做?
我收到''意外符号'错误。
答案 0 :(得分:2)
这很简单:
if counterFlag[name] < 0 then
counterFlag[name] = 0
end
或者使用<=
小于或等于,在这种情况下它具有相同的效果。
答案 1 :(得分:0)
如果它不是大于0的数字,也许你真的想将计数器设置为0.
counterFlag[name] =
type(counterFlag[name]="number")
and (counterFlag[name] > 0)
and counterFlag[name]
or 0
and
是一个运算符,它返回第一个有效的假操作数,否则返回它的最后一个操作数
or
是一个运算符,它返回第一个有效的真实操作数,否则返回它的最后一个操作数。
有效错误表示值为nil
或false
。
有效的真实意味着相反。
因此,第一部分有条件地保持相同的值,如果不满足条件,则第二部分给出0。
或者,Lua习惯用法通常用于初始化可能为nil
的变量:
counterFlag[name] = counterFlag[name] or 0
您可以在使用counterFlag[name]
的代码之前放置它,这样就不必检查nil
。并且,因为,大概你没有分配任何其他非数字值,代码可以使用需要数字值的运算符而不检查它。