go语言中如何分别通过接口和结构体来分别调用函数

在当前工程中新建proto的文件夹,将其以此作为新的模块,在文件夹中新建testmodule.go文件,其中存放的是测试用模块的接口和结构体。存放的内容如下:

package test

import "fmt"

package test

type Iprotos interface{
	Sest()
}

type Data struct{
	i int
}

func (a *Data) Sest()  {
	fmt.Println("sest")
}

注意:其中打印函数中结构体也可以不加*号,也可以这么做

func (a Data) Sest()  {
	fmt.Println("sest")
}

main.go文件中添加

func main()  {
	c := &proto.Data{}
	c.Sest()

	c = &proto.Data{}
	proto.Iprotos(c).Sest()

}

或者

func main()  {
	c := proto.Data{}
	c.Sest()

	c = proto.Data{}
	proto.Iprotos(&c).Sest()

}

在以上两者之间的main函数中代码实现的功能是相似的

上一篇:前端:原型和原型链


下一篇:通过画图来解释原型链