当前位置: 首页 > news >正文

golang中的接口

1.简介

  1. 在go中的接口是以一种类型,一种抽象的类型。接口(interface)是一组函数method的集合,go中的接口不能包含任何变量。
  2. 在go中接口中的所有方法都没有方法体,接口定义了一个对象的行为规范,只定义规范不实现。接口体现了程序的多态和高内聚低耦合的思想。
  3. go中的接口也是一种数据类型,不需要显示实现,只需要一个变量含有接口类型中的所有方法,那么这个变量就实现了这个接口。

2.接口的定义 

interface类型可以定义一组方法,但是这些不需要实现。并且interface不能包含任何变量。到某个自定义类型要使用的时候,再根据具体情况把这些方法写出来(实现)。

type 接口名 interface {

method1(参数...)返回值列表

method2(参数...)返回值列表

}

实现:

func (t 自定义类型) method1(参数...)返回值列表{

//方法体

}

func (t 自定义类型) method2(参数...)返回值列表{

//方法体

}

其中:

  • 接口名:使用type将接口定义为自定义类型名,go语言的接口在命名时,一般会在单词后面添加er,如有写操作的接口writer,有字符串功能的接口叫Stringer等。接口名最好能突出该接口的类型含义。
  • method:当方法名首字母是大写且这个接口名首字母也是大写,这个方法可以被接口所在的包(package)之外的代码访问。
  • 参数和返回值列表:参数和返回值列表中的参数名可以省略。

3.快速入门

定义一个Usber接口让Phone和Camera结构体实现这个接口。

package main

import "fmt"

// 定义一个接口
type Usber interface {
	//声明了两个没有实现的方法
	start()
	stop()
}

type Phone struct {
}

// 手机要实现usb接口的化必须得实现usb接口中的所有方法
func (p Phone) start() {
	fmt.Println("手机开始工作了")
}
func (p Phone) stop() {
	fmt.Println("手机停止工作了")
}

type Camera struct {
}

// 照相机要实现usb接口的化必须得实现usb接口中的所有方法

func (p Camera) start() {
	fmt.Println("照相机开始工作了")
}
func (p Camera) stop() {
	fmt.Println("照相机停止工作了")
}

type Computer struct {
}

// 编写一个方法Working,接口一个Usber接口类型的变量
// 只要实现了Usber接口,
func (c Computer) Working(usb Usber) {
	//通过usb接口变量来调用start和stop方法
	usb.start()
	usb.stop(

相关文章:

  • 【Java进阶学习 第九篇】常用API(Array、冒泡选择排序、二分查找、正则表达式)
  • 【C++进阶】指针:从基础到实践
  • Leetcode Hot 100 79.单词搜索
  • 【spring对bean Singleton和Prototype的管理流程】
  • 英伟达GTC 2025大会产品全景剖析与未来路线深度洞察分析
  • 小程序开发中的安全问题及防护措施
  • 蓝桥与力扣刷题(蓝桥 组队)
  • E1-相亲派对(组合)
  • 【AI News | 20250319】每日AI进展
  • @Resource和@Autowire
  • Java 中 LinkedList 的底层数据结构及相关分析
  • 【源码阅读】多个函数抽象为类(实现各种类型文件转为PDF)
  • UE4学习笔记 FPS游戏制作6 添加枪口特效
  • 详细解析GetOpenFileName()
  • Vue3 核心特性解析:Suspense 与 Teleport 原理深度剖析
  • 区块链技术驱动金融第一章 —— 走进区块链的基石:密码学与加密货币
  • 性能测试过程实时监控分析
  • 虚幻基础:动作系统3
  • 基于Arduino控制的温室蔬菜园环境监控系统(论文+源码)
  • python-56-基于Vue和Flask进行前后端分离的项目开发示例实战
  • 上海高院与上海妇联签协议,建立反家暴常态化联动协作机制
  • 特朗普中东行:“能源换科技”背后的权力博弈|907编辑部
  • 特朗普访问卡塔尔,两国签署多项合作协议
  • 前四个月人民币贷款增加10.06万亿元,4月末M2余额同比增长8%
  • 外国游客“在华扫货”热:“带空箱子到中国!”
  • 在地球另一端的交流,架起2万公里间更多共赢的桥梁