golang多個介面實戰,golang介面深入理解

本文目錄一覽:

Golang入門到項目實戰 | golang介面嵌套

介面可以通過嵌套,創建新的介面。例如:飛魚,既可以飛,又可以游泳。我們創建一個飛Fly介面,創建一個游泳介面Swim,飛魚介面由這兩個介面組成。

飛Fly介面

創建Swimmer介面

組合一個介面FlyFish

創建一個結構體Fish

實現這個組合介面

測試

運行結果

Golang入門到項目實戰 | golang介面和類型的關係

一個類型實現多個介面,例如:有一個Player介面可以播放音樂,有一個Video介面可以播放視頻,一個手機Mobile實現這兩個介面,既可以播放音樂,又可以播放視頻。

定義一個Player介面

定義一個Video介面

定義Mobile介面體

實現兩個介面

測試

運行結果

比如,一個寵物介面Pet,貓類型Cat和狗類型Dog都可以實現該介面,都可以把貓和狗當寵物類型對待,這在其他語言中叫多態。

定義一個Pet介面

定義一個Dog結構體

定義一個Cat結構體

實現介面

測試

運行結果

Golang入門到項目實戰 | golang介面

介面像是一個公司裡面的領導,他會定義一些通用規範,只設計規範,而不實現規範。

go語言的介面,是一種新的類型定義,它把所有的具有共性的方法定義在一起,任何其他類型只要實現了這些方法就是實現了這個介面。

語法格式和方法非常類似。

在介面定義中定義,若干個空方法。這些方法都具有通用性。

下面我定義一個USB介面,有讀read和寫write兩個方法,再定義一個電腦Computer和一個手機Mobile來實現這個介面。

USB介面

Computer結構體

Mobile結構體

Computer實現USB介面方法

Mobile實現USB介面方法

測試

運行結果

下面我們定義一個OpenClose介面,裡面有兩個方法open和close,定義個Door結構體,實現其中一個方法。

【Golang】對使用介面實現多態的理解

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

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

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

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

1、定義一個介面,介面中定義一個方法,所有想要實現該介面的類型,必須先實現介面中的方法

2、定義一個類型,並為該類型以接收者方式實現【步驟1】中的介面方法

3、聲明一個多態方法,接收的參數類型為【步驟1】中定義的介面類型

4、調用該多態方法,並把【步驟2】中定義的類型作為參數傳遞給【步驟3】中聲明的多態方法,由多態方法來調用介面方法

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/186975.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-27 13:33
下一篇 2024-11-27 13:34

相關推薦

發表回復

登錄後才能評論