我试着去柜台设置为0,如果counterFlag [名]小于0数小于0
if counterFlag[name] <== 0 then
counterFlag[name] = 0
end
我怎么能这样做呢?
我得到''意外符号''错误。
我试着去柜台设置为0,如果counterFlag [名]小于0数小于0
if counterFlag[name] <== 0 then
counterFlag[name] = 0
end
我怎么能这样做呢?
我得到''意外符号''错误。
像这样简单:
if counterFlag[name] < 0 then
counterFlag[name] = 0
end
或者使用<=
小于或等于它在这种情况下同样的效果。
也许你真的想计数器设置为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
。而且,因为大概你不会分配任何其他的非数字值,代码可以使用需要数字值的操作符而不检查它。
现在我得到'尝试比较零和数字__lt'的错误。 – Gelu
这意味着“名称”为零 – speeder
@ user3142039检查'counterFlag [name]'的值,它的值现在是'nil',您不能将'nil'与一个数字进行比较。 –