【发布时间】:2020-08-14 04:39:54
【问题描述】:
简单的一段代码,应该可以工作却不工作......我真的无法理解这一点。 这是代码:
local asd = 1
if not asd == nil then
print("works")
end
就是这样,不是打印“作品”,;-;抱歉,如果我遗漏了什么。
【问题讨论】:
简单的一段代码,应该可以工作却不工作......我真的无法理解这一点。 这是代码:
local asd = 1
if not asd == nil then
print("works")
end
就是这样,不是打印“作品”,;-;抱歉,如果我遗漏了什么。
【问题讨论】:
运算符优先级骗了你:
if not asd == nil then
等价于
if (not asd) == nil then
试试
if not (asd == nil) then
【讨论】:
对不起,回答正在做
local asd = 1
if asd ~= nil then
print("works")
end
我什至不知道 ~= 是一个令人惊叹的东西
【讨论】:
if asd then print("works") end,因为否则asd 将是nil。分配给asd 的任何值都会自动使其非零。
if asd then 在这种情况下有效,但如果 asd 曾经被定义为布尔值,则明显不可靠。