go中实现接口的几种方式

package main

import "fmt"

type student interface {
    StudentName() string
}

//定义1个结构体
type Boy struct {
    Name string
}

func New(name string) student {
    return Boy{name}
}

//给他这个结构体绑定一个方法 StudentName。这样就表示它实现了 student接口
func (a Boy) StudentName() string {
    return a.Name
}


func main()  {
    //方式一
    //var b1 = Boy{"zhangsan",}
    //var s1 student
    //s1 = b1
    //fmt.Println(s1.StudentName())

    //方式二
    //b1 := New("lisi")
    //fmt.Println(b1.StudentName())


    //方式三
    //b1 := Boy{"zhangsan",}
    //d11 := []student{b1}
    //fmt.Println(d11[0].StudentName())

    //方式四
    var s1 student = Boy{"zhangsan",}
    fmt.Println(s1.StudentName())  // zhagnsan
}

你可能感兴趣的:(go中实现接口的几种方式)