热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

go语言接口的声明

<svg


一、概述


  • 接口是一种类型,它规定了变量有哪些方法
  • go接口是满足隐式实现的(不用显式声明实现关系),即不用写implements声明
  • 接口约束变量的行为,不约束属性.对于这样的场景,我不管变量的类型,只关心能调用它的哪些行为
  • 当你看到一个接口类型的值时,你不知道它是什么,唯一知道的是通过它的方法能做什么?

接口引入示例:

type cat struct{}
type dog struct{}
func (c cat) speak(){
fmt.Println("瞄")
}
func (d dog) speak(){
fmt.Println("wang")
}
// 这里对实例的行为有要求
func da(d dog){
// 接受一个参数,传进来什么,就打什么
d.speak()
}
func main(){
var c1 cat
var d1 dog
//报错
da(c1)
da(d1)
}

二、接口声明的格式


type 接口类型名 interface{
方法名1(参数列表1)返回值列表1
xxx
}
type a interface{
xxx
}

  • 方法名首字母是大写的,且这个接口类型名首字母也是大写时,方法可以被接口所在的包之外的代码访问

三、开发中常见的接口及写法示例


type Writer interface{
Write(p []byte)(n int,err error)
}
type Stringer interface{
String() string
}


推荐阅读
author-avatar
支着儿traister_107
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有