【发布时间】:2021-11-14 10:05:08
【问题描述】:
如何向string 表添加方法并在其中修改 self ?
基本上,我试图模仿 python 中io.StringIO.read 方法的行为,它读取字符串中的n char 并返回它们,通过“使用”它来修改字符串。
我试过这个:
function string.read(str, n)
to_return = str:sub(1, n)
str = str:sub(n + 1)
return to_return
end
local foo = "heyfoobarhello"
print(string.read(foo, 3))
print(foo)
输出是:
hey
heyfoobarhello
我预计第二行只有foobarhello。
我怎样才能做到这一点?
【问题讨论】:
-
Lua 中的字符串是不可变的。您可以将字符串包装为跟踪从何处开始的对象。或者您可以更改 API 以返回字符串和子字符串。
-
@lhf 我明白了,谢谢。