为什么“不为零”在Lua中归零?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么“不为零”在Lua中归零?相关的知识,希望对你有一定的参考价值。

我用repl.it看看它返回了什么,只是为了好奇,原来not nil回归true

为什么?是因为在Lua中一切都应该是真的还是假的?

Repl.it链接:https://repl.it/repls/SanePastelHarrier

答案

因为nil在转换为布尔值时是false

2.2布尔

布尔类型有两个值,falsetrue,它们代表传统的布尔值。然而,布尔人并不垄断条件值:在Lua中,任何值都可能代表一个条件。条件(例如控制结构中的条件)将falsenil视为false和其他任何东西,如true。请注意,与其他一些脚本语言不同,Lua在条件测试中将零和空字符串视为true

并且not将其参数视为布尔值:

3.3逻辑运算符

逻辑运算符是andornot。与控制结构一样,所有逻辑运算符都将falsenil视为false,而将其他任何东西视为true

以上是关于为什么“不为零”在Lua中归零?的主要内容,如果未能解决你的问题,请参考以下文章

为啥麦克风关闭时基频和幅度不为零?

为啥即使我们将指针分配给NULL,指针的指向对象的大小也不为零?

UIViewController 的 nibName 在 iPad 上为零,但在 iPhone 上不为零

我如何能够确保 json 元素不为零?

C/C++编程笔记:为什么在C++中空类的大小不为零?

过滤分组列值之和不为零的数据表