Go語言實現(xiàn)類似c++中的多態(tài)功能實例
前言
Go語言作為編程語言中的后起之秀,在博采眾長的同時又不失個性,在注重運行效率的同時又重視開發(fā)效率,不失為一種好的開發(fā)語言。在go語言中,沒有類的概念,但是仍然可以用struct+interface
來實現(xiàn)類的功能,下面的這個簡單的例子演示了如何用go來模擬c++中的多態(tài)的行為。
示例代碼
package main import "os" import "fmt" type Human interface { sayHello() } type Chinese struct { name string } type English struct { name string } func (c *Chinese) sayHello() { fmt.Println(c.name,"說:你好,世界") } func (e *English) sayHello() { fmt.Println(e.name,"says: hello,world") } func main() { fmt.Println(len(os.Args)) c := Chinese{"汪星人"} e := English{"jorn"} m := map[int]Human{} m[0] = &c m[1] = &e for i:=0;i<2;i++ { m[i].sayHello() } }
總結(jié)
從上面的例子來看,在go中實現(xiàn)類似C++中的多態(tài)可謂是非常的簡單,只要實現(xiàn)相同的接口即可。
相關(guān)文章
GO中?分組聲明與array,?slice,?map函數(shù)
這篇文章主要介紹了GO中?分組聲明與array,slice,map函數(shù),Go語言中,同時聲明多個常量、變量,或者導(dǎo)入多個包時,可采用分組的方式進行聲明,下面詳細(xì)介紹需要的小伙伴可以參考一下2022-03-03golang 實現(xiàn)Location跳轉(zhuǎn)方式
這篇文章主要介紹了golang 實現(xiàn)Location跳轉(zhuǎn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05Go語言開發(fā)代碼自測絕佳go?fuzzing用法詳解
這篇文章主要為大家介紹了Go語言開發(fā)代碼自測絕佳go?fuzzing用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06gorm update傳入struct對象,零值字段不更新的解決方案
這篇文章主要介紹了gorm update傳入struct對象,零值字段不更新的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04