-
Notifications
You must be signed in to change notification settings - Fork 68
/
Copy pathdmoe002.go
47 lines (42 loc) · 1.46 KB
/
dmoe002.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package main
import (
"fmt"
"reflect"
)
// import (
// "fmt"
// ) go_basic_courses
func main() {
// 声明一个集合字典,默认为空
a := 15
fmt.Println("address of b is ", a)
fmt.Println("address of b is ", &a)
m := map[string]int{}
fmt.Println("address of b i is ", m)
fmt.Printf("Type of a is %T\n", m)
fmt.Printf("m值是 %v \n", m == nil)
var dir map[string]string
fmt.Printf("dir字典的值是: | %v \n", dir)
fmt.Printf("dir字典是否为nil | %v \n", dir == nil)
// nil map不能赋值,如果直接赋值会报错:“panic: assignment to entry in nil map”,下面语句将会报错
// dir["name"] = "Tinywan"
fmt.Println("----------------------------")
// 使用make函数进行初始化创建一个非nil的map
dir = make(map[string]string)
// map是引用类型,未初始化的是指向nil,初始化了以后应该就有自己的内存空间了,所以不是nil
fmt.Printf("dir字典的值是: | %v \n", dir)
fmt.Printf("dir字典是否为nil | %v \n", dir == nil)
fmt.Println("----------------------------")
// make之后分配内存了,一旦分配了内存地址就不为空了,可以赋值了
dir["name"] = "Tinywan"
fmt.Printf("dir字典的键:值 |%v \n", dir)
fmt.Printf("dir字典的类型 |%v \n", reflect.TypeOf(dir))
fmt.Printf("name的值是 |%v \n", dir["name"])
// value, ok := s["ok"]
// if ok == nil {
// s := make(map[string]int)
// s["ok"] = 19
// fmt.Println(s["ok"])
// }
// fmt.Println(s["ok"])
}