package main
import “fmt”
//如果結構體的字段類型是:指針,slice,和map的零值都是nil,即還沒有分配空間
//如果需要使用這樣的字段,需要先make,才能使用。
//注意事項和細節説明
//1)字段聲明語法同變量,實例;字段名字段類型
//2)字段的類型可以為;基本類型、數組或引用類型
//3)在創建一個結構體變量后,如果沒有給字段賦值,都對應一個零值(默認值),規則同前面講的一樣;布爾類型是false,數值是0,字符串是“”。數組類型的默認值和它的元素類型相關,比如score[3]int則為[0,0,0]指針,slice,和map的零值都是nil,即還沒有分配空間。
//4)不同結構體變量的字段是獨立,互不影響,一個結構體變量字段的更改,不影響另外一個
type person struct{
Name string
Age int
Scores [5]float64
ptr *int//指針
slice []int//切片
map1 map[string]string//切片//map
}
func main(){
//定義結構體變量
var p1 person
fmt.Println(p1)
if p1.slice == nil{
fmt.Println("ok1")
}
if p1.slice == nil{
fmt.Println("ok2")
}
if p1.slice == nil{
fmt.Println("ok3")
}
//使用slice,再次説明,一定要make
p1.slice=make([]int,10)
p1.slice[0] = 100 //ok?
//使用map,一定要先make
p1.map1 = make(map[string]string)
p1.map1["key1"]="tom"
fmt.Println(p1)
}