string - 如何重载Lua字符串下标运算符?

标签 string lua operator-overloading

这个:

debug.getmetatable("").__index = function (s, i) return s:sub(i, i) end

还有这个:

debug.getmetatable("").__index = _proc_lua_read

不起作用。

最佳答案

尝试

debug.getmetatable("").__index = function (s, i) return string.sub(s,i,i) end

请注意,通过以这种方式为字符串重新定义 __index,您将失去对字符串调用方法的能力:请注意代码如何不调用 s:sub。有关避免这种情况的更好解决方案,请参阅 http://lua-users.org/lists/lua-l/2007-11/msg00619.html .或者改为设置 __call:

getmetatable("").__call = string.sub

关于string - 如何重载Lua字符串下标运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5685920/

相关文章:

ruby - 为什么这个值被添加到 my 变量的末尾?

c# - 忽略正则表达式转义序列 C#

vb.net - 如何通过 "String Name"获取控制属性?

c++ - 如何检查从键盘输入的特定整数值是否存在于 C++ 文件的一行或多行中

c++ - 只读取文本文件中的给定行?

c - 对象之间的 Lua 引用

string - 是否有一个Lua string.find没有模式

timer - 如何将 "sleep"或 "wait"添加到我的 Lua 脚本?

c++ - 为矩阵类重载操作符 >> 时出现问题

C++ 运算符重载