溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

為什么golang中沒有類

發(fā)布時(shí)間:2020-06-09 16:02:54 來源:億速云 閱讀:1061 作者:元一 欄目:編程語言

Go語言

Go(又稱Golang)是Google開發(fā)的一種靜態(tài)強(qiáng)類型、編譯型、并發(fā)型,并具有垃圾回收功能的編程語言。

羅伯特·格瑞史莫(Robert Griesemer),羅勃·派克(Rob Pike)及肯·湯普遜(Ken Thompson)于2007年9月開始設(shè)計(jì)Go,稍后Ian Lance Taylor、Russ Cox加入項(xiàng)目。Go是基于Inferno操作系統(tǒng)所開發(fā)的。Go于2009年11月正式宣布推出,成為開放源代碼項(xiàng)目,并在Linux及Mac OS X平臺(tái)上進(jìn)行了實(shí)現(xiàn),后來追加了Windows系統(tǒng)下的實(shí)現(xiàn)。在2016年,Go被軟件評價(jià)公司TIOBE 選為“TIOBE 2016 年最佳語言”。 目前,Go每半年發(fā)布一個(gè)二級(jí)版本(即從a.x升級(jí)到a.y)。

golang沒有類(class)。

golang中并沒有明確的面向?qū)ο蟮恼f法,不能算是一種面向?qū)ο蟮恼Z言。因?yàn)椋?/p>

  1. golang只支持封裝,不支持繼承和多態(tài)

  2. golang只有struct,沒有class

實(shí)在要扯上的話,可以將struct比作其它語言中的class。

類聲明

type Poem struct {
    Title  string
    Author string
    intro  string
}

這樣就聲明了一個(gè)類,其中沒有public、protected、private的的聲明。

golang用另外一種做法來實(shí)現(xiàn)屬性的訪問權(quán)限:屬性的開頭字母是大寫的則在其它包中可以被訪問,否則只能在本包中訪問。類的聲明和方法亦是如此。

類方法聲明

func (poem *Poem) publish() {
    fmt.Println("poem publish")
}

或者

func (poem Poem) publish() {
    fmt.Println("poem publish")
}

和其它語言不一樣,golang聲明方法和普通方法一致,只是在func后增加了poem Poem這樣的聲明。加和沒有加*的區(qū)別在于一個(gè)是傳遞指針對象,一個(gè)是傳遞值對象。

以上就是golang有類(class)嗎?的詳細(xì)內(nèi)容,更多請關(guān)注億速云其它相關(guān)文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI