为什么这段代码失败(尝试调用方法'sort'(一个零值))
th> xyz = {1,2,3}
th> xyz:sort()
Run Code Online (Sandbox Code Playgroud)
这虽然有效
th> table.sort(xyz)
Run Code Online (Sandbox Code Playgroud)
因为table默认情况下包含用于操作标准库提供的表的通用函数的表不在表的metatable中.实际上,除非明确指定,否则表没有metatable.
您可以手动执行此操作:
local xyz = {1,2,3}
local mt = { __index = table}
setmetatable(xyz, mt)
xyz:insert(2)
xyz:sort()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
274 次 |
| 最近记录: |