成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

怎么在golang項目中定義接口

這篇文章將為大家詳細(xì)講解有關(guān)怎么在golang項目中定義接口,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

創(chuàng)新互聯(lián)建站是一家專注于做網(wǎng)站、網(wǎng)站建設(shè)與策劃設(shè)計,漳縣網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:漳縣等地區(qū)。漳縣做網(wǎng)站價格咨詢:13518219792

1. 接口的定義和使用。

比如

復(fù)制代碼 代碼如下:

type I interface{
    Get() int
    Put(int)
}


這段話就定義了一個接口,它包含兩個函數(shù)Get和Put

好了,我的一個接口實現(xiàn)了這個接口:

復(fù)制代碼 代碼如下:

type S struct {val int}
func (this *S) Get int {
    return this.val
}
func (this *S)Put(v int) {
    this.val = v
}


這個結(jié)構(gòu)S就是實現(xiàn)了接口I

2. 空接口

對于空接口interface{} 其實和泛型的概念很像。任何類型都實現(xiàn)了空接口。

下面舉個例子:

一個函數(shù)實現(xiàn)這樣的功能:

以任何對象作為參數(shù),如果這個對象是實現(xiàn)了接口I,那么就調(diào)用接口I的Get方法

很多語言都是這樣的邏輯:

復(fù)制代碼 代碼如下:

function g(obj){
    if (obj is I) {
        return (I)obj.Get()
    }
}


Go中是這樣實現(xiàn)的:

復(fù)制代碼 代碼如下:

func g(any interface{}) int {
    return any.(I).Get()
}


這里的any.(I)是不是很語義化?“任何實現(xiàn)了I接口的對象”

3. Go中interface的寫法:

下面看幾個interface的例子:

復(fù)制代碼 代碼如下:

func SomeFunction(w interface{Write(string)}){
    w.Write("pizza")
}


這個例子中,直接將interface定義在參數(shù)中,很特別…

復(fù)制代碼 代碼如下:

func weirdFunc( i int ) interface{} {
  if i ==  0 {
    return "zero"
  }
  return i;
}


這里例子中,由于有可能返回string,也有可能返回int,因此將返回值設(shè)置成為interface,這個在Go的package包中會大量見到。

關(guān)于怎么在golang項目中定義接口就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

網(wǎng)頁標(biāo)題:怎么在golang項目中定義接口
文章轉(zhuǎn)載:http://jinyejixie.com/article48/ggsjep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)App設(shè)計、服務(wù)器托管自適應(yīng)網(wǎng)站、面包屑導(dǎo)航、用戶體驗

廣告

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

成都app開發(fā)公司
通渭县| 堆龙德庆县| 个旧市| 本溪市| 揭西县| 白银市| 津市市| 石林| 蚌埠市| 梅河口市| 迁安市| 班戈县| 韶关市| 名山县| 牟定县| 沾化县| 武夷山市| 连江县| 黄大仙区| 桐庐县| 上林县| 栾城县| 水富县| 五大连池市| 应用必备| 石首市| 万全县| 昭平县| 盐城市| 汨罗市| 江油市| 南投县| 迁西县| 元江| 普兰县| 太原市| 盐城市| 邢台县| 曲周县| 扶绥县| 永嘉县|