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

问题描述 投票:3回答:1

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

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

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

lua boolean-logic
1个回答
6
投票

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

2.2布尔

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

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

3.3逻辑运算符

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

© www.soinside.com 2019 - 2024. All rights reserved.