golang 接口格式
package main
import "fmt"
type Human struct {
name string
age int
phone string
}
type Student struct {
Human //匿名字段
school string
loan float32
}
type Employee struct {
Human //匿名字段
company string
money float32
}
//Human实现SayHi方法
func (h Human) SayHi() {
fmt.Printf("你好我是 %s 电话是 %s\n", h.name, h.phone)
}
//Human实现Sing方法
func (h Human) Sing(lyrics string) {
fmt.Println("La la la la...", lyrics)
}
//Employee重载Human的SayHi方法
func (e Employee) SayHi() {
fmt.Printf("你好我是 %s, 在%s工作. 电话是 %s\n", e.name,
e.company, e.phone)
}
// Interface Men被Human,Student和Employee实现
// 因为这三个类型都实现了这两个方法
type Men interface {
SayHi()
Sing(lyrics string)
}
func main() {
mike := Student{Human{"Mike", 25, "222-222-XXX"}, "MIT", 0.00}
paul := Student{Human{"Paul", 26, "111-222-XXX"}, "Harvard", 100}
sam := Employee{Human{"Sam", 36, "444-222-XXX"}, "Golang Inc.", 1000}
tom := Employee{Human{"Tom", 37, "222-444-XXX"}, "Things Ltd.", 5000}
//定义Men类型的变量i
var i Men
//i能存储Student
i = mike
fmt.Println("这是Mike 是一个学生:")
i.SayHi()
i.Sing("November rain")
//i也能存储Employee
i = tom
fmt.Println("这是TOM 是一个应聘者:")
i.SayHi()
i.Sing("Born to be wild")
//定义了slice Men
fmt.Println(" 让我们来使用一下MEN的切片看发生了什么")
x := make([]Men, 3)
//这三个都是不同类型的元素,但是他们实现了interface同一个接口
x[0], x[1], x[2] = paul, sam, mike
for _, value := range x {
value.SayHi()
}
}
golang 接口格式相关推荐
- bal插口_中国银行银企对接接口格式(企业接口).doc
中国银行银企对接接口格式 PAGE - PAGE 43 / NUMPAGES 62- 中国银行软件中心 中国银行 银企对接接口格式 (前置机接入方式) 文档编号: YQDJ_V01_SP01 当前版本 ...
- 雄兔脚扑朔,雌兔眼迷离;双兔傍地走,安能辨我是雄雌?——golang接口的概念
古有花木兰替父从军,安能识我是女郎?今有golang接口隐式实现.对于一个具体的类型,无须声明它实现了哪些接口,只要提供接口所必需的方法即可. 因为golang是我新学的语言,我们先看看其他语言中接口 ...
- golang 接口类型 interface 简介
目录 1. Go 语言与鸭子类型的关系 2. 值接收者和指针接收者的区别 方法 值接收者和指针接收者 两者分别在何时使用 3. iface 和 eface 的区别是什么 4. 接口的动态类型和动态值 ...
- golang 接口_「实战」助力数据库开发之接口篇 - Golang 连接 Greenplum
Greenplum 作为一款强大的 HTAP 数据库,针对大多数流行语言都有相应的连接库.大部分均是与 PostgreSQL 采用相同的接口,但是也有部分接口是 Greenplum 专门优化后用于自身 ...
- Golang——接口、多态、接口继承与转换、空接口、类型断言
接口是一种规范与标准,只是规定了要做哪些事情.但是具体怎么做,是实现接口的类去做的,接口只是把所有具有共性的方法定义在一起. 接口存在的意义就是用来定义规范,用来做功能的拓展 接口最大的好处是可以实现 ...
- golang 接口类型 interface 简介使用
1. Go 语言与鸭子类型的关系 先直接来看维基百科里的定义: If it looks like a duck, swims like a duck, and quacks like a duck, ...
- golang fmt格式“占位符”
golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. # 定义示例类型和变量 type Human struct { Name string } var peo ...
- 【Golang 接口自动化05】使用yml管理自动化用例
我们在前面几篇文章中学习怎么发送数据请求,怎么处理解析接口返回的结果,接下来我们一起来学习怎么进行测试用例管理,今天我们介绍的是使用yml文件进行用例管理,所以首先我们一起来了解一下YAML和它的简单 ...
- Golang 接口相等比较注意要点
文章目录 1.出乎意料的比较结果 2.类型不等值相等 3.类型相等值不等 4.回首掏 5.小结 1.出乎意料的比较结果 首先看一段代码: func main() {s := "redigo: ...
最新文章
- asp.net网站安全常见问题与防范
- 发现dba_segments和dba_extents中统计段空间大小居然不一样
- win7旗舰版6l打印机咋安驱动_在w7旗舰版上怎么安装HPlaserjet6L打印机?
- go 二进制程序守护_图解 Go 程序是怎样跑起来的
- 数据结构-栈4-栈的应用-中缀转后缀
- 10 -3 2用c语言怎么打,(3*20+30-10)/2怎么使用C语言编写
- 微软服务器打补丁步骤,自己手动制作 Windows 系统补丁包全过程
- 全国计算机四六级报名时间,2018年6月四六级考试报名即将截止,请抓紧时间报名!...
- Cocos2d-x《雷电大战》(4)-策略模式实现不同子弹切换!!
- kubectl exec
- 微信小程序学习笔记——常见组件【navigator】导航组件
- Android 华为手机ADB调试连接不上的参考解决办法
- mac双系统装mysql启动不了了_详解ubuntu双系统启动时卡死解决办法
- redis_主从复制搭建
- 【R语言】ggplot2---散点图的边框和颜色填充问题
- P4学习笔记(二)一个简单P4交换机实现
- 数字图像处理 线性系统、卷积、傅立叶变换
- 电路设计实例:op07c 运算放大电路设计--- 检测电流
- Android大杂烩上篇
- 解决rotatedRectangleIntersection计算目标检测旋转框IOU不准确问题C++、opencv
热门文章
- python求正方体体积_「高中数学」简单几何体的面积与体积相关知识点整理+例题...
- linux mysql 编码修改,Linux下修改MySQL编码的方法
- 嵌入式linux笔记,嵌入式linux学习笔记(一)----嵌入式操作系统
- python类库丰富吗_Rich库:丰富你的Python程序终端输出
- 卖任小龙java视频,任小龙Java大神之路(第九季 SpringMVC)视频教程叩丁狼教育出品...
- 什么是okr,和kpi的区别在哪里
- 原生mysql的批量更新及性能测试
- mysql的in查询是可以用到索引吗?亲测详解
- 【好文推荐】springmvc教程下载
- 【Ubuntu入门到精通系列讲解】常用 Linux 命令的基本使用