当前位置:网站首页>Go从入门到实战——接口(笔记)
Go从入门到实战——接口(笔记)
2022-06-27 19:22:00 【积淀 ytu】
Java接口

Go接口

type Mover interface {
move()
}
type dog struct {
}
func (d dog) move() {
fmt.Println("狗会动")
}
func main() {
var x Mover
var wangcai = dog{
} // 旺财是dog类型
x = wangcai // x可以接收dog类型
var fugui = &dog{
} // 富贵是*dog类型
x = fugui // x可以接收*dog类型
x.move()
}
从上面的代码中我们可以发现,使用值接收者实现接口之后,不管是dog结构体还是结构体指针*dog类型的变量都可以赋值给该接口变量。因为Go语言中有对指针类型变量求值的语法糖,dog指针 fugui 内部会自动求值*fugui
func (d *dog) move() {
fmt.Println("狗会动")
}
func main() {
var x Mover
var wangcai = dog{
} // 旺财是dog类型
x = wangcai // x不可以接收dog类型
var fugui = &dog{
} // 富贵是*dog类型
x = fugui // x可以接收*dog类型
}
此时实现Mover接口的是*dog类型,所以不能给x传入dog类型的wangcai,此时x只能存储*dog类型的值。
接口变量

自定义类型

边栏推荐
猜你喜欢

行业案例|从零售之王看银行数字化转型的运营之道

Codeforces Round #716 (Div. 2)

Wechat applet based service management system for college party members' Home System applet graduation design, Party members, activists, learning, punch in, forum

大促场景下,如何做好网关高可用防护

VMware vSphere ESXi 7.0安装教程

2021全球独角兽榜发布:中国301家独角兽企业全名单来了!

GoLand永久激活

Animal breeding production virtual simulation teaching system | Sinovel interactive

集合代码练习

抖音的兴趣电商已经碰到流量天花板?
随机推荐
How to participate in openharmony code contribution
Navicat Premium连接问题--- Host ‘xxxxxxxx‘ is not allowed to connect to this MySQL server
MySQL Express - day 1 - basic introduction
1029 Median
DO280OpenShift访问控制--security policy和章节实验
Go从入门到实战—— 多路选择和超时控制(笔记)
Share how I take notes
流程控制任务
Let Ma Huateng down! Web3.0, hopeless
Scrum和看板的区别
麒麟V10安装字体
Love math experiment | phase 9 - intelligent health diagnosis using machine learning method
安装gatewayworker之后启动start.php
SQL必需掌握的100个重要知识点:创建计算字段
Safe and efficient, non-contact "hand brushing" identification helps epidemic prevention and control
Serveur mandataire SQUID
SQL必需掌握的100个重要知识点:组合 WHERE 子句
Codeforces Round #716 (Div. 2)
Codeforces Round #723 (Div. 2)
使用storcli工具配置RAID,收藏这一篇就够了