Golang學習筆記 結構體和指標

2021-08-03 04:22:36 字數 1065 閱讀 1498

golang是一門很特殊的語言,雖然它出生比較晚,但是在很多地方卻和現在的程式語言有所不同。現在的程式語言要麼是函式式的、要麼是物件導向的,而go語言卻有指標、結構體這些概念,並解決了c語言的一些坑。從這個角度上說,golang可以看做c語言的填坑加強版。

定義結構體和c語言一樣,使用struct關鍵字。在結構體內部定義它們的成員變數和型別。如果成員變數的型別相同還可以把它們寫到同一行。

type

person

struct

初始化結構體需要使用乙個特殊一點的語法,這就是結構體字面量。在結構體字面量中,可以按照順序初始化結構體、也也可以按照關鍵字初始化結構體。如果按照關鍵字初始化結構體,可以只指定部分值,未指定的值將會使用預設值來初始化。

p2 := person

p3 := person

p4 := person

fmt.println(p1, p2, p3, p4)

最後要說的就是訪問結構體了。結構體的成員都是公有的,所以可以直接用點號.訪問。

p1.age = 26

p1.name = "王五"

fmt.println(p1)

如果學習過c語言的話,對指標的概念應該會比較熟悉。在go語言中,直接砍掉了最複雜的指標運算的部分,只留下了獲取指標(&運算子)和獲取物件(*運算子)的運算。

a, b := 3, 5

pa, pb := &a, &b

fmt.println(*pa, *pb)

對於一些複雜型別的指標, 如果要訪問成員變數的話,需要寫成類似(*p).field的形式,go提供了隱式解引用特性,我們只需要p.field即可訪問相應的成員。

p1 := &person

fmt.println((*p1).name)

fmt.println(p1.name)

Golang學習筆記 六 結構體

結構體與陣列一樣,屬於聚合型別,結構體可以包含零個或任意個型別的值。而這些值則稱為結構體的成員。結構體使用struct關鍵字進行定義宣告,下列 中宣告乙個名稱為user結構體,用於表示乙個使用者資訊,宣告結構體後,便可以用於定義結構體變數。type user struct 複製 定義好結構體後,便可...

Golang學習筆記 13 結構體

go 語言中陣列可以儲存同一型別的資料,但在結構體中我們可以為不同項定義不同的資料型別。結構體是由一系列具有相同型別或不同型別的資料構成的資料集合。結構體表示一項記錄,比如儲存圖書館的書籍記錄,每本書有以下屬性 title 標題 author 作者 subject 學科 id 書籍id type s...

六 Golang學習筆記 結構體

應用場景 儲存人員的詳細資訊,例如編號 姓名 性別等 概念 由一些列具有相同型別或不同型別的資料構成的資料集合,方便管理資料,提高程式易讀性 func main 順序初始化 var s student student fmt.println s 部分成員初始化 var s1 student stud...