Go/複合資料型別/struct-結構體
阿新 • • 發佈:2018-11-17
# 結構體
package main import "fmt" type Stu struct{ age int sex byte //字元型 name string } func main() { //結構體定義與初始化 //順序初始化 每個成員都必須初始化 var s Stu = Stu{18,'m',"Lusa"} fmt.Println(s) //{18 109 Lusa} //指定初始化 剩餘成員預設值 ss := Stu{name:"Tom"} fmt.Println(ss) //{0 0 Tom} var ps *Stu = &Stu{18,'m',"Lusa"} pss := &Stu{name:"Jack"} fmt.Println(ps) //&{18 109 Lusa} fmt.Println(*ps) //{18 109 Lusa} fmt.Printf("%T\n",pss) //*main.StuB //結構體比較與賦值 s2 := s fmt.Println(s == s2) //true test() test2(s) //值傳遞 test3(&s) //傳遞地址 } func test(){ var s Stu var ps *Stu = &s ps2 := new(Stu) s.age = 18 (*ps).sex = 'm' ps.name = "Amy" fmt.Println(s) fmt.Println(*ps2) } func test2(s Stu){ s.age = 20 } func test3(s *Stu){ s.age = 20 }