为啥 type(nil)==nil 是假的?

Posted

技术标签:

【中文标题】为啥 type(nil)==nil 是假的?【英文标题】:Why type(nil)==nil is false?为什么 type(nil)==nil 是假的? 【发布时间】:2015-04-27 08:01:53 【问题描述】:

我正在阅读《用 Lua 编程》一书,但我不明白练习 2.1:

表达式的值是什么

类型(无)==无?

(你可以使用 Lua 来检查你的答案。)你能解释一下这个结果吗?”

当我执行这段代码时,我得到“假”的结果。我无法解释这个结果,从我的角度来看,正确的结果应该是“真实的”。我试过了

type(some_undeclared_variable)==nil 

它也给了我“假”。

【问题讨论】:

【参考方案1】:

函数type()总是返回一个字符串,type(nil)的值是字符串"nil",和nil不一样,它们的类型不同。

【讨论】:

以上是关于为啥 type(nil)==nil 是假的?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Object.prototype instanceof Object 是假的?

为啥 Object.Equals(new Object(), new Object()) 是假的?

为啥文档不存在。但所有时间 !snapshot.hasData 都是假的

为啥在释放对象后使用'nil'

Swift:String 不能为 nil,那为啥 stringByAddingPercentEncodingWithAllowedCharacters 可以为 nil? [复制]

为啥 Go 输入 nil?