學習資料來自
package main
import
"fmt"
func
main()
testinte***ce
(m1)
f1 := flashdisk
testinte***ce
(f1)
}//1.定義介面
type usb inte***ce
//2.實現類
type mouse struct
type flashdisk struct
func
(m mouse)
start()
func
(m mouse)
end(
)func
(m flashdisk)
start()
func
(m flashdisk)
end(
)//3、除錯方法
func
testinte***ce
(usb usb )
將上述的main函式修改如下:
"李華"
介面斷言:
方法1:instacne := 介面物件.(實際型別)//不安全
方法2: instance ,ok :=介面物件.(實際型別)//安全
方法3:switch instance := 介面物件.(type)
*/func
main()
gettype2
(t1)
fmt.
println
(t1.
area()
)}//1.定義乙個介面
type shape inte***ce
type ******** struct
func
(t ********)
peri()
float64
func
(t ********)
area()
float64
type circle struct
func
(c circle)
peri()
float64
func
(c circle)
area()
float64
func
gettype
(s shape)
else
if ins,ok :=s.
(circle)
;okelse
}func
gettype2
(s shape)
}
Go語言的介面
介面是一種抽象型別,是對其他型別行為的概括與抽象,從語法角度來看,介面是一組方法定義的集合。很多物件導向的語言都有介面這個概念,但go語言介面的獨特之處在於它是隱式實現。換句話說,對於乙個具體的型別,無須宣告它實現了哪些介面,只要提供介面所必需的方法即可。這種設計讓程式設計人員無須改變已有型別的實現...
Go 語言介面
go 語言提供了另外一種資料型別即介面,它把所有的具有共性的方法定義在一起,任何其他型別只要實現了這些方法就是實現了這個介面。例項 定義介面 type inte ce name inte ce 定義結構體 type struct name struct 實現介面方法 func struct name...
Go語言 介面
介面代表一種呼叫契約,是多個方法宣告的集合。介面要實現的是做什麼,而不關心如何做。介面最常見的使用場景是對包外提供訪問,或預留擴充套件空間。go語言介面實現機制很簡潔,只要目標型別方法集內包含介面宣告的全部方法,就被視為實現了該介面,無需做顯示宣告,當然目標型別可實現多個介面。其實介面也是一中結構,...