golang結(jié)構(gòu)體和類 (推薦學(xué)習:go)
golang中并沒有明確的面向?qū)ο蟮恼f法,實在要扯上的話,可以將struct比作其它語言中的class。
類聲明
type Poem struct { Title string Author string intro string }
這樣就聲明了一個類,其中沒有public、protected、private的的聲明。
golang用另外一種做法來實現(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ū)別在于一個是傳遞指針對象,一個是傳遞值對象。