Jquery中文网 www.jquerycn.cn
Jquery中文网 >  后端编程  >  Go语言  >  正文 go 语言方法与接口

go 语言方法与接口

发布时间:2021-05-29   编辑:www.jquerycn.cn
jquery中文网为您提供go 语言方法与接口等资源,欢迎您收藏本站,我们将为您提供最新的go 语言方法与接口资源

go 语言方法与接口

go语言中没有类class的概念、没有对象object关键词、也没有继承(但可以使用组合来实现继承关系),但提供了接口的支持,可以使用接口来实现面向对象的一些特性。

在go语言中结构体struct和其他面向对象语言中的class有同样的地位。结构体是将零个或者多个任意类型的命令变量组合在一起的聚合数据类型。每个变量都叫做结构体的成员。

type user struct {
	name string
	email string
	address address     # 通过组合来关联 address
}
type address struct {
	...
}
// 一个使用指针接受者实现的方法
function(u *user) notify(){
	fmt.Printf("Sending user email to %s<%s>\n", u.name, u.email)
}

一个绑定了结构的函数就是一个 方法 ,该结构体着这里叫做接受者receiver,接受者可以是内置的类型也可以是自定义类型,也可以是类型指针。在方法中接受者就像C 中的this和Python中的self,但它是显式的声明其所属类型。

接口 Interface 是一组抽象方法(未具体实现的方法/仅包含方法名参数返回值的方法)的集合,如果实现了 interface 中的所有方法,即该类/对象就实现了该接口。
在上面代码的基础上添加:

// 定义一个接口类型
type notifier interface {
	notify()
}

type user struct {
	name string
	email string
	address address     # 通过组合来关联 address
}
type address struct {
	...
}
// 一个使用指针接受者实现的方法 实现了接口中的方法
function(u *user) notify(){
	fmt.Printf("Sending user email to %s<%s>\n", u.name, u.email)
}

// main是应用程序的入口
func main(){
	u := user{"XiaoMing", "xiaoming@qq.com"}
	sendNotification(&u)
}
// 该函数接受实现了 notifier 接口的值
func sendNotfication(n notifier){
	n.notify()
}

参考: go语言学习-接口

到此这篇关于“go 语言方法与接口”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
想系统学习GO语言(Golang
Go 语言接口
Go语言发展历史、核心、特性及学习路线
Go 语言到底适合干什么?
golang学习系列——1. go语言的特点
基于类型系统的面向对象编程语言Go
go语言核心编程_Go语言核心编程李文塔
Go语言学习3----Go语言特色
初识 go 语言:方法,接口及并发
go 接口与动态类型

[关闭]