Go 方法
在结构体中,除了定义一些类的属性之外,还可以定义封装一些方法,来描述类的一些行为
如下在Person中实现了一个获取姓名的方法:
type Person struct{
Name string
Age int
Addr string
Hobby []string
}
func (this *Person)GetName()string{
return this.Name
}
其中this *person 和结构体的对象绑定
var p = &Person{
Name:"波波",
Age:18,
Addr:"武汉",
Hobby:[]string{
"Golang",
"Game",
"Move",
},
}
fmt.Println(p.GetName())//p是该结构体的一个实例 在GetName方法中与this绑定
注意:方法和结构体中的属性的作用域,首字母大写可以被外部调用,如果是小写,只能本包内部调用
结构体的String方法:
如果该结构体实现了自定义的String方法,那么fmt.Println自动会调用String输出
func (this *Person)String()string{
str := fmt.Sprintf("Name=[%v], Age=[%v], Addr=[%v], Hobby=[%v]",this.Name,this.Age,this.Addr,this.Hobby)
return str
}

浙公网安备 33010602011771号