1.結構體
結構體是一系列具有指定資料型別的資料型別 ,就是乙個結構體中儲存多個不同型別的資料字段 ,用於建立傳遞複雜資料結構
結構體可以理解為物件導向的模板 ,但是go並非物件導向 ,結構體只是一種新的資料型別
2.結構體建立
結構體例項的資料字段不賦值 ,預設就是該型別的零值
巢狀結構體可以完成更為複雜的操作 ,就是乙個結構體某個欄位是另乙個結構體型別
結構體可以使用 關鍵字var建立
1view codepackage main23
import (4"
fmt"5)
67 type computer struct
1314 type ven struct
1819
func main()
23 c1 :=computer
29var
c2 computer
30 fmt.println(c2.cpu=="") //
go會預設賦零值""
31 c2.vendor =v1
32 c2.cpu = "
core i7
"33 c2.mem = "三星"
34 c2.disk = "三星"
3536
fmt.println(c1.vendor,c2.disk)
3738
39 }
3.公有私有
go的結構體和他本身的字段都可能被匯出使用 ,規定首字母大寫可以匯出
4.區分值引用與指標引用
值引用是建立副本 ,原始值與新值沒關係
指標引用是通過指標指向原值的記憶體位置 ,修改會影響原值
如果想通過引用修改原值使用指標 ,否則使用值引用
1view codepackage main
23 import "
fmt"
45 type ven struct910
func main()
1516 b1 := &a1 //
指標引用
17 b2 :=a1
1819
fmt.println(a1.name,b1.name,b2.name)
20 a1.name = "微軟"
21fmt.println(a1.name,b1.name,b2.name)
22//
亞馬遜 亞馬遜 亞馬遜
23//
微軟 微軟 亞馬遜
24 }
Golang結構體和指標
golang是一門很特殊的語言,雖然它出生比較晚,但是在很多地方卻和現在的程式語言有所不同。現在的程式語言要麼是函式式的 要麼是物件導向的,而go語言卻有指標 結構體這些概念,並解決了c語言的一些坑。從這個角度上說,golang可以看做c語言的填坑加強版。定義結構體和c語言一樣,使用struct關鍵...
golang結構體與方法
type people inte ce type student struct func stu student speak think string talk string else return func main think speak fmt.println peo.speak think ...
結構體與指標
struct s options opt 此時結構體內的資料都是乙個隨機數 struct s options opts struct s options malloc sizeof struct s options 8 此時各元素為預設初始化值,例如int就是0 一 結構體的定義方法 1 直接定義 ...