首頁  >  文章  >  後端開發  >  golang有類別(class)嗎?

golang有類別(class)嗎?

青灯夜游
青灯夜游原創
2019-12-30 11:30:539285瀏覽

golang有類別(class)嗎?

golang有類別(class)嗎?

golang沒有類別(class)。

golang中並沒有明確的物件導向的說法,不能算是一種物件導向的語言。因為:

  1. golang只支援封裝,不支援繼承和多型

  2. golang只有struct,沒有class

實在要扯上的話,可以將struct比喻為其它語言中的class。

類別聲明

type Poem struct {
    Title  string
    Author string
    intro  string
}

這樣就宣告了一個類,其中沒有public、protected、private的的宣告。

golang用另一種做法來實現屬性的存取權限:屬性的開頭字母是大寫的則在其它包中可以被訪問,否則只能在本包中訪問。類別的聲明和方法亦是如此。

類別方法宣告

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

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

和其它語言不一樣,golang宣告方法和普通方法一致,只是在func後增加了poem Poem這樣的宣告。加和沒有加*的差別在於一個是傳遞指針對象,一個是傳遞值物件。

相關推薦:golang教學

以上是golang有類別(class)嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn