### map是需要make初始化的,然后我自定义了一个map
### m0,m1都可以使用,m2却报错assignment to entry in nil map
### 想请教下m0,m1为什么没报错,内部如何实现初始化操作的?
```go
package main
import "fmt"
type HashMap map[string]bool
func main() {
m0 := HashMap{}
m0["0"] = false
fmt.Println(m0)
m1 := &HashMap{}
(*m1)["1"] = false
fmt.Println(m1)
m2 := new(HashMap)
(*m2)["2"] = false
fmt.Println(m2)
}
```
原因在于 map slice channel 这三种类型的变量,必须初始化后,才可以使用。new() 只是声明了一段内存并返回了地址,并没有对这个 map 进行初始化,因此报错了。
#2