luajit 中不受欢迎的 if 语句

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:  意外的符号 '&'
点赞
用户7509065
用户7509065

因为原生的按位运算符是 Lua 5.3 中新引入的特性,而 LuaJIT 基本上仅支持 Lua 5.1。因此,应使用 bit.band 替代:

这个模块是 LuaJIT 内置的 - 你不需要下载或安装 Lua BitOp。Lua BitOp 网站有所有 Lua BitOp API 函数的完整文档。

在使用其任何函数之前,请确保以以下方式使用 require 加载该模块:

local bit = require("bit")

来源

2020-04-28 21:10:25