go語言多態(tài) golang 多態(tài)

go語言小白求助,為什么多態(tài)的接受的數(shù)據(jù)類型是接口,但是可以給他傳輸對象的地址?

因為結構Student和Teacher實現(xiàn)接口Human的方法SayHello時,接受的是通過一個指針類型的變量(見(s *Student)和(t *Teacher))來調(diào)用這個方法。因此,在調(diào)用SayHi函數(shù)時,只能傳遞Student或Teacher的對象的地址,傳遞它們的對象是錯的。

創(chuàng)新互聯(lián)公司服務項目包括臨澧網(wǎng)站建設、臨澧網(wǎng)站制作、臨澧網(wǎng)頁制作以及臨澧網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,臨澧網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到臨澧省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

相反,如果結構Student和Teacher實現(xiàn)接口Human的方法SayHello時,接受的是通過一個對象(像(s Student)和(t Teacher))來調(diào)用這個方法。則在調(diào)用SayHi函數(shù)時,既能傳遞Student或Teacher的對象,也能傳遞Student或Teacher的對象的地址。

【Golang】對使用接口實現(xiàn)多態(tài)的理解

看【Go語言實戰(zhàn)】這本書第二遍了,看第一遍的時候只是留下個印象,為了加深記憶以及方便回顧,把自己的理解寫出來,僅供參考,Go Go Go,開始

接口是用來定義行為的類型。這些被定義的行為不由接口直接實現(xiàn),而是通過方法由用戶 定義的類型實現(xiàn)。如果用戶定義的類型實現(xiàn)了某個接口類型聲明的一組方法,那么這個用戶定 義的類型的值就可以賦給這個接口類型的值。這個賦值會把用戶定義的類型的值存入接口類型 的值。

1、如果參數(shù)類型是指針,那么在調(diào)用的時候也必須傳遞指針地址,因為編譯器不是總能自動獲取一個值的地址

2、如果參數(shù)類型是值,那調(diào)用的時候傳值或者指針都可以,因為通過指針可以獲取到對應的值

1、定義一個接口,接口中定義一個方法,所有想要實現(xiàn)該接口的類型,必須先實現(xiàn)接口中的方法

2、定義一個類型,并為該類型以接收者方式實現(xiàn)【步驟1】中的接口方法

3、聲明一個多態(tài)方法,接收的參數(shù)類型為【步驟1】中定義的接口類型

4、調(diào)用該多態(tài)方法,并把【步驟2】中定義的類型作為參數(shù)傳遞給【步驟3】中聲明的多態(tài)方法,由多態(tài)方法來調(diào)用接口方法

Go怎么能做到不需要“對象”就可以完成多態(tài)能做到的事?慕課網(wǎng)上線的新版Go語言有沒有提到這一點?

go嚴格上說沒有多態(tài),但可以利用接口進行,對于都實現(xiàn)了同一接口的兩種對象,可以進行類似地向上轉型,并且在此時可以對方法進行多態(tài)路由分發(fā)。慕課網(wǎng)上線的新版Go語言不僅有提到這一點,還提到了Go在不面對對象的情況下是怎么完成封裝和繼承的,老師講得很通透,搭配經(jīng)典算法、典型例題、微型項目深入講授go語言。然后還會教學員從零開始搭建分布式爬蟲系統(tǒng),學會用go語言處理復雜項目。

文章標題:go語言多態(tài) golang 多態(tài)
當前地址:http://bm7419.com/article2/dohjiic.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、虛擬主機、搜索引擎優(yōu)化、品牌網(wǎng)站建設、電子商務網(wǎng)站導航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)