tostring方法重写
时间: 2023-08-31 10:06:23 浏览: 106
当我们创建一个自定义的类时,我们经常需要将对象转换为字符串。这时候就需要使用到tostring方法。在Lua中,tostring方法是用于将一个变量转换成字符串的方法。如果我们没有重写tostring方法,则默认的tostring方法只是返回变量的类型和地址。
我们可以重写tostring方法来自定义输出对象的字符串表示方式。重写tostring方法的语法如下:
```
function tostring(object)
-- 自定义输出对象的字符串表示方式
end
```
例如,我们可以创建一个Person类,并重写它的tostring方法:
```
Person = {name = "Tom", age = 18}
function Person:new(name, age)
local obj = {}
setmetatable(obj, self)
self.__index = self
obj.name = name
obj.age = age
return obj
end
function Person:tostring()
return "Name: " .. self.name .. ", Age: " .. self.age
end
local person = Person:new("Jerry", 20)
print(person) -- 输出:Name: Jerry, Age: 20
```
在上面的代码中,我们重写了Person类的tostring方法,将对象转换为我们定义的字符串表示方式。当我们使用print函数输出person对象时,会自动调用Person类的tostring方法,输出字符串"Name: Jerry, Age: 20"。
阅读全文