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

时尚 · 2026-07-22 09:55:29

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

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接口对象内容请搜刮完竣下载之前的文章或延续不雅不雅不雅不雅鉴赏上面的相干文章希看大年夜师往后多多支撑完竣下载!

口对

文章推荐:

五星级马术老友“跃申城” ,2024上波浪琴全球马术冠军赛往日开票

粉红胸凤头鹦鹉若何繁衍?粉红胸凤头鹦鹉的豢养编制

侏儒海棠兔若干很多若干良多若干很多若干良多若干很多若干钱能买到 ?侏儒海棠兔的特点

谷歌不雅不雅不雅不雅鉴赏器阻拦 Adobe Flash Player 插件  ?教你消弭樊篱

上海芭蕾舞团原创芭蕾舞剧《花腔年光时分》表态第52届喷喷喷喷喷鼻港艺术节

侏儒海棠兔对保管气候有甚么请求?

ps5国行保修需求发票吗

黑头凯克鹦鹉是甚么 ?黑头凯克鹦鹉的糊口习惯

“春日经济”激起文旅消费新活力 ,幽暗节假期出游人次超1亿

钉钉上提交央求加班的图文法度圭表类型

火狐不雅不雅不雅不雅鉴赏器数据同步下场独霸声明,寄看两点

彩虹吸蜜鹦鹉的豢养编制,彩虹吸蜜鹦鹉的价值

热门浏览

标签列表