golang fmt.Stringer 接口的使用
发布时间:2020-12-16 18:04:11 所属栏目:大数据 来源:网络整理
导读:在python中,可以通过__str__()定义输出对象的信息。同样的,在Go中Stringer接口也有此功能。Stringer接口定义在fmt包中,该接口包含String()函数。任何类型只要定义了String()函数,进行Print输出时,就可以得到定制输出。 Stringer接口定义如下: type Str
在python中,可以通过__str__()定义输出对象的信息。同样的,在Go中Stringer接口也有此功能。Stringer接口定义在fmt包中,该接口包含String()函数。任何类型只要定义了String()函数,进行Print输出时,就可以得到定制输出。 Stringer接口定义如下: type Stringer interface { String() string }
下面通过一些例子加以说明。 example1package main
import (
"fmt"
)
type Power struct{
age int
high int
name string
}
//指针类型
func (this *Power) String() string {
return fmt.Sprintf("age:%d,high:%d,name:%s",this.age,this.high,this.name)
}
func main() {
var i *Power = &Power{age: 10,high: 178,name: "NewMan"} //指针类型
fmt.Printf("%sn",i)
fmt.Println(i)
fmt.Printf("%v",i)
}
output:
example2package main
import (
"fmt"
)
type Power struct{
age int
high int
name string
}
//非指针
func (this Power) String() string {
return fmt.Sprintf("age:%d,this.name)
}
func main() {
var i Power = Power{age: 10,name: "NewMan"} //非指针变量
fmt.Printf("%sn",name:NewMan
|