tostring (v)
!subtitle:说明
将参数 v 转换为字符串。
如果 v 的元表包含索引为 __tostring 的元方法,则以 v 为参数调用该函数
否则,如果 v 的元表包含索引为 __name 的字符串,则返回该字符串和对象的 ID
!subtitle:参数
v - 要转换为字符串的内容
!subtitle:返回值
转换为字符串后的值
local t = { value = 10 }
-- 定义元表,包含 __tostring
local metatable = {
__tostring = function(v) return string.format('%q', v.value) end
}
-- 设置元表
setmetatable(t, metatable)
-- 转换
print(tostring(t))
-- 定义元表,包含 __name
metatable = {
__name = "Custom Object"
}
-- 设置元表
setmetatable(t, metatable)
-- 转换
print(tostring(t))
tostring - Lua 5.4 Reference Manual