当前位置: 首页 > 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")}}

相关文章:

  • 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)的实战指南
  • 解放日报:浦东夯实“热带雨林”式科创生态
  • 2025五一档新片电影总票房破亿
  • 央行就《关于规范供应链金融业务引导供应链信息服务机构更好服务中小企业融资有关事宜的通知》答问
  • 小核酸药物企业瑞博生物递表港交所,去年亏损2.81亿元
  • 中央宣传部、全国总工会联合发布2025年“最美职工”先进事迹
  • 中国武术协会原主席张耀庭逝世,曾促成电影《少林寺》拍摄