本篇文章為大家展示了怎么在go中利用interface進(jìn)行多態(tài)范式操作,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
站在用戶的角度思考問題,與客戶深入溝通,找到江陰網(wǎng)站設(shè)計(jì)與江陰網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋江陰地區(qū)。看程序:
package main import "fmt" type BaseIntf interface { Process() } type Msg1 struct { req int rsp int } func (p *Msg1) Process() { fmt.Println("process 1") } type Msg2 struct { req int rsp int } func (p *Msg2) Process() { fmt.Println("process 2") } func main() { m1 := new(Msg1) m1.Process() m2 := new(Msg2) m2.Process() }
變一下:
package main import "fmt" type BaseIntf interface { Process() } func Run(proc BaseIntf) { fmt.Println("run") proc.Process() } type Msg1 struct { req int rsp int } func (p *Msg1) Process() { fmt.Println("process 1") } type Msg2 struct { req int rsp int } func (p *Msg2) Process() { fmt.Println("process 2") } func main() { m1 := new(Msg1) Run(m1) m2 := new(Msg2) Run(m2) }
這種風(fēng)格的代碼,見了很多次了。
不多說(shuō)。
補(bǔ)充:go語(yǔ)言中通過空接口查詢來(lái)實(shí)現(xiàn)多態(tài)
直接看代碼吧~ 空接口算是go語(yǔ)言的精妙之處
package main type Person struct { name string age int } type Cat struct { kind string sex bool price int } func main() { family := make([]interface{},0,10) obj1 := &Person{ name: "呂云飛", age: 28, } obj2 := &Person{ name: "胡景茹", age: 18, } obj3 := &Cat{ kind: "英短", sex: true, price: 2000, } family = append(family, obj1, obj2, obj3) for _, value := range family { switch obj := value.(type) { case *Person: print(obj.name + "\n") case *Cat: print(obj.kind + "\n") } } }
上述內(nèi)容就是怎么在go中利用interface進(jìn)行多態(tài)范式操作,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文標(biāo)題:怎么在go中利用interface進(jìn)行多態(tài)范式操作-創(chuàng)新互聯(lián)
文章路徑:http://aaarwkj.com/article46/dppeeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站制作、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站設(shè)計(jì)、面包屑導(dǎo)航、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容