共计 694 个字符,预计需要花费 2 分钟才能阅读完成。
类型 T 的可调用办法集蕴含接受者为 T 或 T 的所有办法集
这条规定说的是如果咱们用来调用特定接口办法的接口变量是一个指针类型,那么办法的接受者能够是值类型也能够是指针类型.
类型 T 的可调用办法集蕴含接受者为 T 的所有办法**
package main | |
import "fmt" | |
func main() { | |
// 能够调用 *T T 类型的办法 | |
var te1 myPerson // 接口类型 | |
te1 = &Person{ | |
Name: "小马", | |
Age: 10, | |
} | |
te1.setName() | |
te1.setPerAge() | |
fmt.Println(te1) | |
// 只能调用 T 类型的办法 | |
var people myPeople | |
people = Person{ | |
Name: "小河", | |
Age: 5, | |
} | |
people.setAge() | |
fmt.Println(people) | |
} | |
// Person 定义构造体 | |
type Person struct { | |
Name string | |
Age int | |
} | |
// 定义接口 | |
type myPerson interface {setName() | |
setPerAge()} | |
// 定义接口 | |
type myPeople interface {setAge() | |
//setPeopleName()} | |
func (p *Person) setName() {p.Name = "小呼"} | |
func (p Person) setPerAge() {fmt.Println("输入年龄:", p.Age) | |
} | |
func (p Person) setAge() {p.Age = 18} | |
//func (p *Person) setPeopleName() { | |
// p.Name = "测试" | |
//} |
参考:https://blog.csdn.net/suiban7…
正文完