简介
golang的接口使用非常广泛,几乎每一个包都会用到接口,fmt包的使用率最多之一。在实际开发中,要定义结构体的标准输出用String(),定义标准错误输出Error(),定义格式化输出Format(),还有比较特殊的GoString()。接下来描述接口的使用方式,使用场景,还有注意的地方。
String()
type TestString struct {}
func (t TestString) String() string {
return "我是String"
}
func main() {
fmt.Println(TestString{})
}
复制代码
我是String
复制代码
使用起来比较简单,只要结构体里面有String() string
就可以输出。fmt
包里面会判断有没有fmt.Stringer
的接口,然后再调用。
通常用于结构体的默认输出,例如:
type Student struct {
number int
realname string
age int
}
func main() {
stu := &Student{
number: 1,
realname: "王小明",
age: 18,
}
fmt.Println(stu)
}
复制代码
&{1 王小明 18}
复制代码
改成: