如何重载Lua字符串下标运算符?
这:
debug.getmetatable("").__index = function (s, i) return s:sub(i, i) end
和这:
debug.getmetatable("").__index = _proc_lua_read
不起作用。
This:
debug.getmetatable("").__index = function (s, i) return s:sub(i, i) end
and this:
debug.getmetatable("").__index = _proc_lua_read
does not work.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
请
注意,通过以这种方式重新定义字符串的
__index
,您将失去在字符串上调用方法的能力:请注意代码如何不调用s:sub
。如需避免这种情况的更好解决方案,请参阅 http://lua- users.org/lists/lua-l/2007-11/msg00619.html 。或者设置__call
来代替:Try
Note that by redefining
__index
for strings in that way, you lose the ability to call methods on strings: note how the code does not calls:sub
. For a better solution that avoids that, see http://lua-users.org/lists/lua-l/2007-11/msg00619.html . Or set__call
instead: