Go嵌入类型及内部提升样例

简介: 这个有点新鲜哟。。。 package main import ( "fmt" ) type notifier interface { notify() } type user struct { name string email string } func (u *user) notify() { fmt.

这个有点新鲜哟。。。

package main

import (
	"fmt"
)


type notifier interface {
	notify()
}

type user struct {
	name  string
	email string
}

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

type admin struct {
	user
	level string
}

func (a *admin) notify() {
	fmt.Printf("Sending admin email to %s<%s>\n",
		a.name,
		a.email)
}


//main is the entry of the program
func main() {
	ad := admin {
		user:  user {
			name: "john smith",
			email: "john@yahoo.com",
		},
		level: "super",
	}
	
	sendNotification(&ad)
	ad.user.notify()
	ad.notify()
	
}

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

  

目录
相关文章
|
4月前
|
JSON 安全 前端开发
类型安全的 Go HTTP 请求
类型安全的 Go HTTP 请求
|
1月前
|
JSON 前端开发 JavaScript
聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
44 4
|
1月前
|
Go
go语言常量的类型
【10月更文挑战第20天】
26 2
|
3月前
|
存储 Go
Go: struct 结构体类型和指针【学习笔记记录】
本文是Go语言中struct结构体类型和指针的学习笔记,包括结构体的定义、成员访问、使用匿名字段,以及指针变量的声明使用、指针数组定义使用和函数传参修改值的方法。
|
4月前
|
人工智能 JSON NoSQL
Go MongoDB Driver 中的 A D M E 类型是什么
Go MongoDB Driver 中的 A D M E 类型是什么
50 1
|
4月前
|
安全 Go
|
4月前
|
存储 安全 程序员
|
4月前
|
编译器 Go 开发者
Go 在编译时评估隐式类型的优点详解
【8月更文挑战第31天】
36 0
|
4月前
|
存储 编译器 Go
|
4月前
|
存储 安全 Go
深入理解 Go 语言中的指针类型
【8月更文挑战第31天】
52 0