golang中接口对象如何转型
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍golang中接口对象如何转型,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!接口对象的转型有两种方式:1. 方式一:instance,ok:=接口对象.(实际类
千家信息网最后更新 2026年11月01日golang中接口对象如何转型
这篇文章主要介绍golang中接口对象如何转型,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
接口对象的转型有两种方式:
1. 方式一:instance,ok:=接口对象.(实际类型)
如果该接口对象是对应的实际类型,那么instance就是转型之后对象,ok的值为true
配合if...else if...使用
2. 方式二:
接口对象.(type)
配合switch...case语句使用
示例:
package main import ( "fmt" "math") type shape interface { perimeter() int area() int} type rectangle struct { a int // 长 b int // 宽}func (r rectangle) perimeter() int { return (r.a + r.b) * 2}func (r rectangle) area() int { return r.a * r.b} type circle struct { radios int}func (c circle) perimeter() int { return 2 * c.radios * int(math.Round(math.Pi))}func (c circle) area() int { return int(math.Round(math.Pow(float64(c.radios), 2) * math.Pi))} func getType(s shape) { if i, ok := s.(rectangle); ok { fmt.Printf("长方形的长:%d,长方形的宽是:%d\n", i.a, i.b) } else if i, ok := s.(circle); ok { fmt.Printf("圆形的半径是:%d\n", i.radios) }} func getType2(s shape) { switch i := s.(type) { case rectangle: fmt.Printf("长方形的长:%d,长方形的宽是:%d\n", i.a, i.b) case circle: fmt.Printf("圆形的半径是:%d\n", i.radios) }} func getResult(s shape) { fmt.Printf("图形的周长是:%d,图形的面积是:%d\n", s.perimeter(), s.area())} func main() { r := rectangle{a: 10, b: 20} getType(r) getResult(r) c := circle{radios: 5} getType2(c) getResult(c)}上面的例子使用的是方式一,如果要使用方式2,可以将getType()函数改为:
func getType(s shape) { switch i := s.(type) { case rectangle: fmt.Printf("图形的长:%.2f,图形的宽:%.2f \n", i.a, i.b) case triangle: fmt.Printf("图形的第一个边:%.2f,图形的第二个边:%.2f,图形的第三个边:%.2f \n",i.a,i.b,i.c) case circular: fmt.Printf("图形的半径:%.2f \n",i.radius) }}以上是"golang中接口对象如何转型"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
图形
对象
接口
方式
长方形
s.
半径
i.b
内容
圆形
实际
篇文章
类型
r.a
r.b
三个
价值
例子
兴趣
函数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
百单网互联网科技有限公司怎么样
科技互联网龙头
互联网最新的科技
腾讯科技 互联网女皇
电子科技大学互联网
赫美联合互联网科技
互联网科技大会
国外互联网科技网站
老年人脱离互联网科技的作文
卫星互联网科技股票
成都玖崟互联网科技有限公司乐商圈怎么样
须眉科技是互联网公司吗
温州喔噻互联网科技有限公司
小米互联网科技园设置
科技与互联网哪个更好
科技互联网海报
广州智享互联网科技
互联网领先科技活动
兰石爱特工业互联网科技分公司
马化腾互联网科技教学
互联网科技公司简介
科技和互联网公司
科技互联网项目
镁科技互联网资讯平台
互联网实体化科技化
互联网还是高科技吗
赶超互联网科技 微信多开
易企秀互联网科技是做什么的
互联网科技机房
安徽零酒互联网科技有限公司