package main
import "fmt"
func main() {
// & 取地址
// * 根据地址取值
var n = 18
var p *int = &n
fmt.Printf("%T \t%v\n%T \t%v\n", p, p, *p, *p)
// 运行结果:
// *int 0xc00000a0b0
// int 18
// make是给slice, map和chan申请内存的
// new 分配内存空间返回指针
ptr := new(int)
fmt.Printf("%T", ptr) // 输出 *int
// Map
var dict0 map[string]int = make(map[string]int, 10) // 类型*intmap[]
var dict1 = make(map[string]int, 10) // 类型map
dict2 := make(map[string]int, 10) // 类型map
dict0["年龄"] = 20
dict2["年龄"] = 18
dict2["工资"] = 1000
fmt.Println(dict0, dict1, dict2) // 输出*intmap[年龄:20] map[] map[工资:1000 年龄:18]
// 取值
val, ok := dict0["年龄"]
fmt.Printf("%v\t%v\n", ok, val) // 输出 true 20
val, ok = dict1["工资"]
fmt.Printf("%v\t%v\n", ok, val) // 输出 false 0
// 删除
delete(dict2, "工资")
// 遍历
for key := range dict2 {
fmt.Printf("%v\n", key)
}
for key, value := range dict2 {
fmt.Printf("%v\t%v\n", key, value)
}
}
Go语言学习草稿(3) 指针和Map
最新推荐文章于 2022-08-07 15:11:25 发布