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

Go语言接口实战指南

接口类型

Go语言中的接口(Interface)是一种抽象类型,它定义了一组方法集合,用于规范对象的行为契约。

声明通道类型的格式如下:

// DBInterface 数据库接口
type DBInterface interface {// Connect 数据库连接Connect();// DisConnect 关闭数据库连接DisConnect();
}

Go 接口采用隐式实现机制,无需显式声明。只要类型实现了接口定义的所有方法,就自动满足该接口的要求,代码示例如下:


// MySqlConn mysql数据库连接
type MySqlConn struct {
}// Connect 数据库连接
func (m *MySqlConn) Connect() {fmt.Println("Mysql connect success")
}// DisConnect 关闭数据库连接
func (m *MySqlConn) DisConnect() {fmt.Println("Mysql disconnect success")
}

MySqlConn 类完整实现了 DBInterface 接口的所有方法,因此 MySqlConn 实现了 DBInterface 接口。

接口实现方式

接口可以通过值接收者和指针接收者两种方式实现。

值接收者实现

值接收者实现接口方式,代码示例如下:

// DmConn dm数据库连接
type DmConn struct {
}// Connect 数据库连接
func (d DmConn) Connect() {fmt.Println("DM connect success")
}// DisConnect 关闭数据库连接
func (d DmConn) DisCo
http://www.xdnf.cn/news/1265275.html

相关文章:

  • 聊聊经常用的微服务
  • Baumer高防护相机如何通过YoloV8深度学习模型实现火星陨石坑的检测识别(C#代码UI界面版)
  • 集成电路学习:什么是RQT图形用户界面工具
  • 智慧园区误报率↓76%:陌讯多模态融合算法实战解析
  • 智能情趣设备、爆 bug:可被远程操控。。。
  • 计算机网络:如何将/22的CIDR地址块划分为4个子网
  • 前端视角下关于 WebSocket 的简单理解
  • rosrun 和 roslaunch 区别
  • [激光原理与应用-205]:光学器件 - LD与DFB的比较
  • JavaWeb03——javascript基础语法
  • 微信小程序功能 表单密码强度验证
  • 从浅拷贝到深拷贝:C++赋值运算符重载的核心技术
  • v-model双向绑定指令
  • Selenium + Python + Pytest + Yaml + POM
  • Linux网络--2、Socket编程
  • 自由学习记录(79)
  • Pytest项目_day08(setup、teardown前置后置操作)
  • NY128NY133美光固态闪存NY139NY143
  • No time to train! Training-Free Reference-Based Instance Segmentation之论文阅读
  • 笔试——Day32
  • 【ros-humble】2.自定义通讯接口发布者python,qt使用(话题)
  • 使用 ast-grep 精准匹配指定类的方法调用(以 Java 为例)
  • V4L2摄像头采集 + WiFi实时传输实战全流程
  • 汇编语言和高级语言的差异
  • 【从0到1制作一块STM32开发板】6. PCB布线--信号部分
  • 【ESP32-menuconfig(1) -- Build Type及Bootloader config】
  • FreeRTOS入门知识(初识RTOS)(一)
  • WinForm 实战 (进度条):用 ProgressBar+Timer 打造动态进度展示功能
  • BBH详解:面向大模型的高阶推理评估基准与数据集分析
  • TyDi QA:面向语言类型多样性的信息检索问答基准