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

golang接口和具体实现之间的类型转换

在 Go 语言中,如果你有一个接口类型的变量,并且你知道它的具体实现类型,你可以使用类型断言将其转换为具体类型。类型断言的语法是 value, ok := interfaceVar.(ConcreteType),其中 interfaceVar 是接口变量,ConcreteType 是具体类型。

package mainimport ("fmt"
)// 定义一个接口
type Animal interface {Speak() string
}// 定义一个具体类型
type Dog struct {Name string
}// 实现接口方法
func (d Dog) Speak() string {return "Woof!"
}func main() {// 创建一个 Dog 的实例,并将其赋值给接口类型的变量var animal Animal = Dog{Name: "Buddy"} // case2:animalb := Animal(Dog{Name: "Buddy"})fmt.Printf("This animal is saying: %s\n", animalb.Speak())// 使用类型断言将接口变量转换为具体类型if dog, ok := animal.(Dog); ok {fmt.Printf("This is a Dog named %s and it says: %s\n", dog.Name, dog.Speak())} else {fmt.Println("The interface does not hold a Dog type")}}
http://www.dtcms.com/a/165054.html

相关文章:

  • JConsole监控centos服务器中的springboot的服务
  • 大连理工大学选修课——机器学习笔记(7):集成学习及随机森林
  • Ollama 安装 QWen3 及配置外网访问指南
  • Postgresql源码(144)LockRelease常规锁释放流程分析
  • 完美解决 mobile-ffmpeg Not overwriting - exiting
  • .NET平台用C#在PDF中创建可交互的表单域(Form Field)
  • 垃圾收集GC的基本理解
  • K8S Secret 快速开始
  • k8s -hpa
  • uniapp打包apk详细教程
  • [特殊字符] Spring Cloud 微服务配置统一管理:基于 Nacos 的最佳实践详解
  • 基于站点观测的中国1km土壤湿度日尺度数据集(2000-2022)
  • 【MySQL】增删改查(CRUD)
  • w~大模型~合集14
  • 精益数据分析(34/126):深挖电商运营关键要点与指标
  • 【爬虫】deepseek谈爬虫工具
  • HTTP 快速解析
  • Windows11下本地化部署AI开发环境(Dify+Ollama)
  • 【Kubernets知识】Secret组件更新大全
  • Python 爬取微店商品列表接口(item_search)的实战指南
  • 【ArcGISPro学习笔记】布局输出时图例总是有省略号怎么办?
  • React Native 从零开始完整教程(环境配置 → 国内镜像加速 → 运行项目)
  • Spark SQL 之 DAG
  • vite入门教程
  • 告别手动时代!物联网软件开发让万物自动互联
  • ESP32开发-通过ENC28J60模块实现以太网设备
  • K8S - GitOps 入门实战 - 自动发布与秒级回滚
  • Go 写一个简单的Get和Post请求服务
  • k8s平台:手动部署Grafana
  • Linux基础 -- Generic Netlink 框架详解与开发实践