Go基礎系列:struct和嵌套struct

structide

struct定義結構,結構由字段(field)組成,每一個field都有所屬數據類型,在一個struct中,每一個字段名都必須惟一。函數

說白了就是拿來存儲數據的,只不過可自定義化的程度很高,用法很靈活,Go中很多功能依賴於結構,就這樣一個角色。code

Go中不支持面向對象,面向對象中描述事物的類的重擔由struct來挑。好比面向對象中的繼承,能夠使用組合(composite)來實現:struct中嵌套一個(或多個)類型。面向對象中父類與子類、類與對象的關係是is a的關係,例如Horse is a Animal,Go中的組合則是外部struct與內部struct的關係、struct實例與struct的關係,它們是has a的關係。Go中經過struct的composite,能夠"模仿"不少面向對象中的行爲,它們很"像"。對象

定義struct繼承

定義struct的格式以下:接口

 

1type identifier struct {string

2 field1 type1it

3 field2 type2數據類型

4 …channel

5}// 或者type T struct { a, b int }

理論上,每一個字段都是有具備惟一性的名字的,但若是肯定某個字段不會被使用,能夠將其名稱定義爲空標識符_來丟棄掉:

 

1type T struct {

2 _ string

3 a int}

每一個字段都有類型,能夠是任意類型,包括內置簡單數據類型、其它自定義的struct類型、當前struct類型自己、接口、函數、channel等等。

相關文章
相關標籤/搜索