【发布时间】:2025-12-15 17:55:02
【问题描述】:
当我们在 Lua 解释器中输入:
>print(1=="1")
false
好吧!
>print(false==true)
false
好吧!
>print(string==math)
false
好的,但是为什么呢?
>print(function==nil)
stdin:1: '(' expected near '=='
我不明白 == 和 ~= 的工作原理。请解释
【问题讨论】:
-
为什么
string应该等于math?而function是关键字但不是变量,所以function == nil根本没有任何意义。 -
==检查参数是否相等。如果不知道你认为会发生什么,就很难解释你的理解哪里错了。是什么让您认为string==math会给出除错误之外的任何结果?你期望print(function==nil)的结果是什么? -
@ChrisH 就是这样! string 和 math 是标准库的一部分。所以如果字符串和数学是假的,因为它们相等没有任何意义。那么 function 和 nil 也应该是 false ,但事实并非如此。它会引发错误!。
-
好的,我想我现在明白你在问什么了。我会在几分钟后发布答案。
-
@GouravDas 来自 Piglet 的回答已经说明了我会拥有的一切,所以我不会再写我的了,因为它基本上是一样的。