#Lua 的 tostring 函数
tostring (v)
说明
将参数 v
转换为字符串。
- 如果
v
的元表包含索引为__tostring
的元方法,则以v
为参数调用该函数 - 否则,如果
v
的元表包含索引为__name
的字符串,则返回该字符串和对象的 ID
参数
v
- 要转换为字符串的内容
返回值
- 转换为字符串后的值
#示例
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))