本篇內(nèi)容主要講解“Go語(yǔ)言的接口有什么作用”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Go語(yǔ)言的接口有什么作用”吧!

創(chuàng)新互聯(lián)公司專注于東陽(yáng)網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供東陽(yáng)營(yíng)銷型網(wǎng)站建設(shè),東陽(yáng)網(wǎng)站制作、東陽(yáng)網(wǎng)頁(yè)設(shè)計(jì)、東陽(yáng)網(wǎng)站官網(wǎng)定制、小程序設(shè)計(jì)服務(wù),打造東陽(yáng)網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供東陽(yáng)網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
在Go語(yǔ)言中,一個(gè)接口類型總是代表著某一種類型(即所有實(shí)現(xiàn)它的類型)的行為。一個(gè)接口類型的聲明通常會(huì)包含關(guān)鍵字type、類型名稱、關(guān)鍵字interface以及由花括號(hào)包裹的若干方法聲明。示例如下:
type Animal interface { Grow() Move(string) string}
如果一個(gè)數(shù)據(jù)類型所擁有的方法集合中包含了某一個(gè)接口類型中的所有方法聲明的實(shí)現(xiàn),那么就可以說(shuō)這個(gè)數(shù)據(jù)類型實(shí)現(xiàn)了那個(gè)接口類型。
你可能已經(jīng)意識(shí)到,我們無(wú)需在一個(gè)數(shù)據(jù)類型中聲明它實(shí)現(xiàn)了哪個(gè)接口。只要滿足了“方法集合為其超集”的條件,就建立了“實(shí)現(xiàn)”關(guān)系。這是典型的無(wú)侵入式的接口實(shí)現(xiàn)方法。
package main import ( "fmt" ) // 定義一個(gè)接口 type People interface { ReturnName() string } // 定義一個(gè)結(jié)構(gòu)體 type Student struct { Name string } // 定義結(jié)構(gòu)體的一個(gè)方法。 // 這個(gè)方法同接口People的所有方法,此時(shí)可直接認(rèn)為結(jié)構(gòu)體Student實(shí)現(xiàn)了接口People func (s Student) ReturnName() string { return s.Name } func main() { cbs := Student{Name:"咖啡色的羊駝"} var a People a = cbs name := a.ReturnName() fmt.Println(name) // 輸出"咖啡色的羊駝" }
h, ok := a.(People)
這種方式稱為類型斷言表達(dá)式。
a.(People)的求值結(jié)果可以有兩個(gè):
第一個(gè)結(jié)果是被轉(zhuǎn)換后的那個(gè)目標(biāo)類型(這里是Student)的值.
而第二個(gè)結(jié)果則是轉(zhuǎn)換操作成功與否的標(biāo)志。
空接口就是不包含任何方法的接口。正因?yàn)槿绱耍械臄?shù)據(jù)類型都實(shí)現(xiàn)了空接口。就像Java中的Object類一樣。
因此空接口可以存儲(chǔ)任意類型的數(shù)據(jù)。
到此,相信大家對(duì)“Go語(yǔ)言的接口有什么作用”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
網(wǎng)頁(yè)題目:Go語(yǔ)言的接口有什么作用
URL分享:http://chinadenli.net/article12/jpcjgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、定制開(kāi)發(fā)、企業(yè)網(wǎng)站制作、品牌網(wǎng)站建設(shè)、網(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)