golang中接口对象的转型两种编制

热点 · 2026-09-04 16:25:25

接口对象的中接转型转型有两种编制 :

1. 编制一 :instance,ok:=接口对象.(理论圭表类型)

  假定该接口对象是对应的理论圭表类型,那么instance就是口对转型此后对象,ok的两种值为true
  合营if...else if...独霸

2. 编制二:

  接口对象.(type)
  合营switch...case语句独霸

示例 :

package main import (    "fmt"    "math") type shape inte***ce {     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 ***:  fmt.Printf("图形的第一个边
:%.2f
,图形的两种第二个边:%.2f,图形的编制第三个边	
:%.2f \n",i.a,i.b,i.c) case circular:  fmt.Printf("图形的半径:%.2f \n",i.radius) }}

PS:上面求三角形面积独霸了海***式求三角形的面积 ,公式为 :

三角形的中接转型面积=平方根[三角形周长的一半×(三角形周长的一半减往第一个边)×(三角形周长的一半减往第二个边)×(三角形周长的一半减往第三个边)]

到此这篇关于golang中接口对象的转型的文章就引见到这了,更多相干Golang接口对象内容请搜刮完竣下载之前的文章或延续不雅不雅不雅不雅鉴赏上面的相干文章希看大年夜师往后多多支撑完竣下载 !

口对

文章推荐:

聚宝成语近似富小剧 :苹果安卓都能玩 ,略微吃权重 ,不是黑号的根本都能润5

21家上市公司解约普华永道

一米五长蛇现身家门口  ,救火员巧手捉蛇除隐患

红糖甜 喷喷喷喷喷鼻榧喷喷喷喷喷鼻 松阳“共富工坊”搭起“致富桥”

快手风行新一期签约每个月躺着有收进 ,上一期人均三位数!

上海驰咭片子院官宣重开 !替你们实地看了...

江西警方传递 :掳掠金店外子已抓获 ,涉案财物全数追回

视频博主称在除夜理双廊镇买到假银器,涉事商家被立案查询访谒

视频号复杂点赞存眷获利,自带脚本可主动做单 !

嫦娥六号成功着陆月背 !别致的月球后背躲了甚么奇妙

山东华丰煤矿突水工作8人被困 最快往日诰日上午可打通应急通道

匠心筑梦,安高·申陇院下场夸姣糊口蓝图

热门浏览

标签列表