和其他的面向对象编程语言有所区别,golang中并没有直接提供对象语法,比如类似python, C++等中的class
,而是以struct
来间接实现面向对象编程
在给结构体对象添加方法的时候,接收者参数可以有两种类型,一种是值参数
,还有一种则是指针参数
func(receiver Type) Method
func(receiver *Type) Method
值对象可以调用值方法&指针方法
type Person struct{
Name string
Age int
}
// 值方法
func(p Person) SayHello(){
fmt.Printf("Hello, my name is %s\n", p.Name)
}
// 引用方法
func(p *Person) SetAge(age int){
p.Age = age
}
func main(){
var jack = Person{