gpt4 book ai didi

c++ - 一些运算符是 Lua 不允许的

转载 作者:太空宇宙 更新时间:2023-11-03 10:43:32 25 4
gpt4 key购买 nike

我的 C++ 项目中的 Lua 实现遇到了一个非常奇怪的问题。出于某种原因,它不允许执行包含操作符的脚本,例如 #:%(以及更多,不太重要的) .

在结果中...

我需要使用 for i = 1, table.getn(tbl) do 而不是 for i = 1, #tbl do

我需要使用 string.gsub(str, [..]) 而不是 str:gsub([..])

等等...寻找解决方法真的很烦人。

我的第一个想法是编码。我尝试了多种常见编码,但都没有用。

我遇到的错误:

当使用 str:gsub([..]) 而不是 string.gsub(str, [..]) 时:

attempt to index global `str' (a string value)

当使用 #tbl 而不是 table.getn(tbl) 时:

unexpected symbol near `#'

可能是什么问题?我会感谢每一个解决方案,因为我没有想法。


规范:

Lua版本:

#define LUA_VERSION "Lua 5.0.3"

C++11,FreeBSD 10

最佳答案

The length operator是 lua 5.1 的补充。它在 lua 5.0 中不存在。

同样,默认的字符串元表似乎是 lua 5.1 添加的。

比较luaopen_string的lua 5.0实现到 luaopen_string 的 lua 5.1 实现.

同样(再次)模运算也是 5.1 加法。比较 5.0 manual算术运算符 部分和 `5.1 manual1 .

5.1 手册部分包含运算符的定义,因此您可以自己实现它(或改用您需要的任何其他定义)。

关于c++ - 一些运算符是 Lua 不允许的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28682740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com