1.方法的继承 示例: package main import "fmt" type Person struct { name string //名字 sex byte //性别, 字符类型 age int //年龄 } //Person类型,实现了一个方法 func (tmp *Person) PrintInfo() { fmt.Printf("name=%s, sex=%c, age=%d\n", tmp.name, tmp.sex, tmp.age) } //…
1.go语音之进阶篇 示例: package main import "fmt" type Humaner interface { //子集 sayhi() } type Personer interface { //超集 Humaner //匿名字段,继承了sayhi() sing(lrc string) } type Student struct { name string id int } //Student实现了sayhi() func (tmp *Student) sayhi…
1.普通变量的方法集 示例: package main import "fmt" type Person struct { name string //名字 sex byte //性别, 字符类型 age int //年龄 } func (p Person) SetInfoValue() { fmt.Println("SetInfoValue") } func (p *Person) SetInfoPointer() { fmt.Println("SetI…
方法集 类型的方法集是指可以被该类型的值调用的所有方法的集合. 用实例实例 value 和 pointer 调用方法(含匿名字段)不受方法集约束,编译器编总是查找全部方法,并自动转换 receiver 实参. 1.指针类型和普通类型的方法集 示例: package main import "fmt" type Person struct { name string //名字 sex byte //性别, 字符类型 age int //年龄 } //非指针 func (p Person)…
1.值语义和引用语义 示例: package main import "fmt" type Person struct { name string //名字 sex byte //性别, 字符类型 age int //年龄 } //修改成员变量的值 //接收者为普通变量,非指针,值语义,一份拷贝 func (p Person) SetInfoValue(n string, s byte, a int) { p.name = n p.sex = s p.age = a fmt.Print…