1、結構體
1.1、結構體類型
有時我們需要將不同類型的數據組合成一個有機的整體,如:一個學生有學號/姓名/性別/年齡/地址等屬性。顯然單獨定義以上變量比較繁瑣,數據不便於管理。
結構體是一種聚合的數據類型,它是由一系列具有相同類型或不同類型的數據構成的數據集合。每個數據稱為結構體的成員。
1.2、結構體普通變量初始化
示例:
package main //必須有個main包 import "fmt" //定義一個結構體類型 type Student struct { id int name string sex byte //字符類型 age int addr string } func main() { //順序初始化,每個成員必須初始化 var s1 Student = Student{1, "mike", 'm', 18, "bj"} fmt.Println("s1 = ", s1) //指定成員初始化,沒有初始化的成員,自動賦值為0 s2 := Student{name: "mike", addr: "bj"} fmt.Println("s2 = ", s2) }
執行結果:
s1 = {1 mike 109 18 bj} s2 = {0 mike 0 0 bj}
1.3、結構體指針變量初始化
示例:
package main //必須有個main包 import "fmt" //定義一個結構體類型 type Student struct { id int name string sex byte //字符類型 age int addr string } func main() { //順序初始化,每個成員必須初始化, 別忘了& ,&取地址 var p1 *Student = &Student{1, "mike", 'm', 18, "bj"} fmt.Println("p1 = ", p1) //指定成員初始化,沒有初始化的成員,自動賦值為0 p2 := &Student{name: "mike", addr: "bj"} fmt.Printf("p2 type is %T\n", p2) //main函數結構體 fmt.Println("p2 = ", p2) }
執行結果:
p1 = &{1 mike 109 18 bj} p2 type is *main.Student p2 = &{0 mike 0 0 bj}