1. make 创建变量
-
make 用于创建 slice, map, chan
-
返回变量的引用
package main import "fmt" func main() { //makeSliceTest() //makeMapTest() makeChan() } // make 用于创建 slice map chan // 使用make 创建slice func makeSliceTest() { sMakeSlice := make([]string, 3) sMakeSlice[0] = "aaa" sMakeSlice[1] = "bbb" sMakeSlice[2] = "ccc" fmt.Println(sMakeSlice) } // 使用make 创建map func makeMapTest() { mMakeMap := make(map[string]int64) mMakeMap["a"] = 1 mMakeMap["b"] = 100 mMakeMap["c"] = 1000 fmt.Println(mMakeMap) } // 使用make 创建chan func makeChan() { chMakeChan := make(chan string) close(chMakeChan) fmt.Println("close chMakeChan successful!") }
2. new 创建变量
-
内存置零
-
返回传入类型的指针地址
package main import ( "fmt" "reflect" ) func main() { NewMap() } // 使用new 常见map func NewMap() { mNewMap := new(map[string]int64) mMakeMap := make(map[string]int64) fmt.Println("mNewMap type: ", reflect.TypeOf(mNewMap)) fmt.Println("mMakeMap type: ", reflect.TypeOf(mMakeMap)) }
输出结果:
mNewMap type: *map[string]int64 mMakeMap type: map[string]int64