Go語言學習筆記 PART7 結構體

2021-09-24 07:33:20 字數 1766 閱讀 6669

type identifier struct 

複製**

結構體得字段可以是任何型別,甚至是結構體本身,也可以是函式或者介面

type point struct 

複製**

new函式獲取到得是結構體型別得指標

使用new函式跟使用&t{}是等價的,都是產生結構體型別指標

point1 := point  (a)

point2 := point (b)

point3 := point (c)

複製**

結構體的型別定義在它的包中必須是唯一的,結構體的完全型別名是:packagename.structname

point.x = 5

複製**

x := point.x

複製**

type mystruct struct 

var v mystruct // v是結構體型別變數

var p *mystruct // p是指向乙個結構體型別變數的指標

複製**

結構體和它所包含的資料在記憶體中是以連續塊的形式存在的

go不支援物件導向程式設計語言中的構造方法,但是可以通過函式實現

type file struct 

// 定義工廠方法,函式名大寫字母開頭才能被跨包呼叫

func

newfile

(fd int, name string) *file

return &file

}// 呼叫工廠方法

f := newfile(10, "./test.txt")

複製**

如果想要強制使用工廠函式,那麼可以將結構體的型別改為首字母小寫

結構體中的字段,除了名字和型別,還有乙個可選的標籤,它是附屬在字段的字串(相當於欄位的解釋)

type tagtype struct 

func

main()

for i := 0; i < 3; i++

}func

reftag

(tt tagtype, ix int)

複製**

// 欄位名稱分別是:bool, string, int

type tagtype struct

複製**

在結構體中,對於每種資料型別,只能有乙個匿名字段

go語言的繼承是通過內嵌或組合來實現的

結構體的屬性首字母大寫

type tagtype struct 

複製**

入門教程推薦: github.com/unknwon/the…

Go語言學習筆記 PART6 Map

func main 2 func int 5 func int fmt.println mf 2.int作為key,int切片作為value mp1 make map int int mp2 make map int int 複製 宣告方式 var map1 map int string 初始化方式...

go語言學習筆記 結構體

go語言中,結構體的宣告非常類似c語言,具體定義方法如下 初始化方法有三種 package main import fmt 定義乙個結構體型別 type student struct func main fmt.println s1 s1 2.部分成員初始化,未初始化的變數被賦值為0 s2 stud...

go語言學習筆記

type info struct func main fmt.println info1 data,json.marshal info1 fmt.println string data 輸出 這裡要特別注意的是 json 冒號後面和雙引號之間千萬不要有空格!被坑慘了 go語言 import的包的前面...