Lua笔记16 __tostring,lua16__tostring
分享于 点击 4770 次 点评:270
Lua笔记16 __tostring,lua16__tostring
mt={} --定义元表 ,注意:元表一般定义在table的一个函数中,然后将这个函数复制为另一个table,做为元表
function mt.__tostring(tb) --定义__tostring 方法函数,返回的是一个字符串
local l={} -- l 用来保存 集合中所有元素的table
for k,v in pairs(tb) do
l[#l+1]=v
end
return "{" .. table.concat(l,",") .. "}" --返回是一个string 类型
end
function mt.__print(s) --调用print 来打印这个string
print(mt.__tostring(s))
end
tbA={"a","b","c","d"}
setmetatable(tbA,mt) --[[返回的是一个table类型的变量]]
print(tbA)
print(type(mt.__tostring(tbA)))
print(type(setmetatable(tbA,mt)))
相关文章
- 暂无相关文章
用户点评