Go中的接口多态及嵌入类

简介: 我感觉个还好理解, 至少比当初入JAVA时更容易理解, 可能是以前的学习为现在打下了基础吧。 又或许是最近三年的程序编写,长了见识吧~

我感觉个还好理解,

至少比当初入JAVA时更容易理解,

可能是以前的学习为现在打下了基础吧。

又或许是最近三年的程序编写,长了见识吧~



package main

import (
	"fmt"
)

type notifier interface {
	notify()
}

type user struct {
	name  string
	email string
}

type admin struct {
	user
	level string
}

func (u user) notify() {
	fmt.Printf("Sending User Email To %s<%s>\n",
		u.name,
		u.email)
}

func (u admin) notify() {
	fmt.Printf("Sending Admin Email To %s<%s>\n",
		u.name,
		u.email)
}

func (u *user) changeEmail(email string) {
	u.email = email
}

func main() {
	bill := user{"Bill", "bill@email.com"}
	sendNotification(bill)

	lisa := admin{
		user: user{
			name:  "Lisa",
			email: "lisa@email.com",
		},
		level: "super",
	}
	sendNotification(lisa)

}

func sendNotification(n notifier) {
	n.notify()
}

7fc90806191303aefaca24bb102d9df81eae9427
目录
相关文章
|
1月前
|
Go
|
3月前
|
存储 设计模式 Cloud Native
云原生系列Go语言篇-类型、方法和接口 Part 1
通过前面章节的学习,我们知道Go是一种静态类型语言,包含有内置类型和用户定义类型。和大部分现代编程语言一样,Go允许我们对类型关联方法。它也具备类型抽象,可以编写没有显式实现的方法。
50 0
|
19天前
|
存储 安全 Go
掌握Go语言:Go语言类型转换,无缝处理数据类型、接口和自定义类型的转换细节解析(29)
掌握Go语言:Go语言类型转换,无缝处理数据类型、接口和自定义类型的转换细节解析(29)
|
1月前
|
安全 Go
接口在Go语言中的实现与应用
【2月更文挑战第19天】接口是Go语言中一种重要的抽象机制,它定义了一组方法的集合,而不关注具体的实现。本文将深入探讨Go语言中接口的实现方式、接口的应用场景以及接口在Go语言设计中的优势,帮助读者更好地理解和应用接口。
|
2月前
|
Cloud Native Go 数据库
一文搞懂Go搭建Restful接口
一文搞懂Go搭建Restful接口
18 0
|
3月前
|
JavaScript 前端开发 NoSQL
go embed 实现gin + vue静态资源嵌入
go embed 实现gin + vue静态资源嵌入
66 0
|
3月前
|
Go
深入理解Go的接口和类型断言
深入理解Go的接口和类型断言
68 0
|
3月前
|
存储 Cloud Native Java
云原生系列Go语言篇-类型、方法和接口 Part 2
虽然Go并发(在并发一章讲解)是聚光灯下的宠儿,便Go设计中真正的明星是其隐式接口,也是Go中唯一的抽象类型。下面就来学习它的伟大之处。
50 0
|
关系型数据库 应用服务中间件 测试技术
记一次从Rails至Golang的接口迁移
初创公司常会选择类似Rails这样的框架进行业务的快速开发,但Rails存在并发性低的弱点,随着业务量的提升,有可能出现性能上的问题。这时,往往需要将一部分高频调用的接口使用一种并发性更好的技术(如openresty, golang, erlang, scala...)加以改造,本文总结了将一个线上高频访问的接口服务从Rails改造为Golang实现的实战经验。
5157 0
|
14天前
|
Go
go语言中的数据类型
go语言中的数据类型
11 0

热门文章

最新文章