Go語言中的介面物件轉型

2021-10-09 22:59:29 字數 1127 閱讀 8750

go語言中介面物件轉型,有2種方式。

案例如下:

// myinte***cechg project main.go

package main

import (

"fmt"

"math"

)//1.定義乙個介面

type shape inte***ce

//2.矩形

type rectangle struct

//3.三角形

type ******** struct

//圓形

type circle struct

//實現介面的方法

func (r rectangle) perimeter() float64

func (r rectangle) area() float64

func (t ********) perimeter() float64

func (t ********) area() float64

func (c circle) perimeter() float64

func (c circle) area() float64

//測試函式

func testshape(s shape)

//介面物件轉型--方式1

func gettype(s shape) else if instance, ok := s.(********); ok else if instance, ok := s.(circle); ok

}//介面物件轉型--方式2

func gettyep2(s shape)

}func main()

gettype(s)

testshape(s)

s = ********

gettype(s)

testshape(s)

s = circle

gettype(s)

testshape(s)

}

效果如下:

圖(1)介面物件轉型

GO語言中的介面

這幾天一直在看go語言知識,其中對介面的知識點有點模糊,所以整理一下。type 介面名 inte ce注意 介面裡的方法可以為空,也就是乙個空介面。下面舉個例子 定義people介面,有乙個說名字的方法 type people inte ce 宣告了乙個people型別的變數p var p peop...

Go語言中物件導向

go語言中沒有明確的oop object oriented programming 概念。go語言只提供了兩個關鍵型別 struct,inte ce。1 struct與c 語言中的普通struct相似,在go語言中是借助著struct結構體才實現的 2 inte ce是抽象類的型別,inte ce則...

GoLang學習筆記(三十六)介面物件的轉型

介面物件轉型 方式一 instance,ok 介面物件.實際型別 如果該介面物件是對應的實際型別,那麼instance就是轉型之後物件,ok的值為true 配合if.else if.使用 方式二 介面物件.type 配合switch.case語句使用 type shape inte ce type ...