我们可以执行 string.split("1,2,3",",")
或 ("1,2,3"):split(",")
并收到相同的结果。
但是 tab = {} table.insert(tab, "hi")
可以工作,而 tab = {} tab:insert("hi")
会抛出错误
tab = {} tab:insert("hi"):1: attempt to call a nil value
这看起来不一致,是我做错了什么还是有充分的理由为什么在 Lua 中调用方法不同?
谢谢,
最佳答案
这是因为Lua中字符串有默认的元表,而表没有。您可以自己设置元表:
local tab = setmetatable({}, {__index = table})
tab:insert("hi")
print(#tab)
关于string - 为什么我们可以做 str :split (",") but not tab:insert(val)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65282919/