Lua逻辑运算符与其他语言不同吗?

BCK*_*FSH -1 lua

于是我开始瞎搞与Lua的逻辑运算符。如此处所述 print (4 and 5)将返回5print (4 or 5)将返回4。如果您随后切换数字,则表明print (5 and 4)它将返回4。我理解的是,在解释如果是运营商返回的第一个操作数错误,第二个如果这是真的,但什么我是从C ++等语言使用的是print (4 and 5)回报4。如何获得与C ++或类似语言相同的结果?

lhf*_*lhf 5

此C代码不会打印 4

printf("%d\n", 4 & 5);
Run Code Online (Sandbox Code Playgroud)

但这是由于的二进制表示而造成的意外4

实际上,下面的代码print 4,既不是也不56

printf("%d\n", 5 & 6);
Run Code Online (Sandbox Code Playgroud)

如果使用逻辑,则此代码将输出1,而不是45

printf("%d\n", 4 && 5);
Run Code Online (Sandbox Code Playgroud)