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 ...