結構體聲明和使用陷阱

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)

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值