不欢迎在luajit上发表声明

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

lua 5.3.5接受下面的代码,

 function isOdd (n)                                                                                                    
     if n & 1 == 1                                                                                                     
         then return true                                                                                              
         else return false                                                                                             
     end                                                                                                               
 end    

 print(isOdd(1), isOdd(2)) 

为什么luajit 2.0.5拒绝它?

line 2:  'then' expected near '&'
lua luajit
1个回答
1
投票

因为本地位运算符是Lua 5.3的新功能,而LuaJIT基本上是Lua 5.1。使用bit.band代替:

此模块是LuaJIT内置的-您无需下载或安装Lua BitOp。 Lua BitOp站点具有所有bit.band的完整文档。

使用任何功能之前,请先确保模块为Lua BitOp API functions

require

local bit = require("bit")

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