нежелательно, если заявление на luajit - PullRequest
2 голосов
/ 29 апреля 2020

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 '&'

1 Ответ

2 голосов
/ 29 апреля 2020

Поскольку собственные побитовые операторы являются новыми для Lua 5.3, а LuaJIT в основном Lua 5.1. Используйте bit.band вместо:

Этот модуль является встроенным в LuaJIT - вам не нужно загружать или устанавливать Lua BitOp. Lua Сайт BitOp имеет полную документацию по всем Lua API-функциям BitOp .

Пожалуйста, убедитесь, что require модуль перед использованием любой из его функций:

local bit = require("bit")

Источник

...