关于golang:golang-中接口-指针类型和值类型方法区别

类型 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…

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理