package main import "fmt" //探索make的用法 //make函数是Go的内置函数,它的作用是为slice、map或chan初始化并返回引用。make仅仅用于创建slice、map和channel,并返回它们的实例。 func main() { /*------------------------------------------------数组 slice------------------------------------------------------*/ //数组切片 定义length 不定义slice arr := make([]int, 2) fmt.Println(arr) arr = []int{1, 2} fmt.Println(arr) //添加元素 arr = append(arr, 1) fmt.Println(arr) //数组切片 定义length 定义slice arr1 := make([]int, 2, 2) fmt.Println(arr1) arr1 = []int{1, 2} fmt.Println(arr1) //添加元素 arr1 = append(arr1, 1) fmt.Println(arr1) /*------------------------------------------------map 只需要两个参数------------------------------------------------*/ //如果不初始化 map,那么就会创建一个 nil map。nil map 不能用来存放键值对 //make(map[keyType] valueType, size) maps := make(map[string]int, 2) fmt.Println(maps) //添加元素 maps["maps"] = 1 fmt.Println(maps) fmt.Println(maps["maps"]) /*------------------------------------------------channel 只需要两个参数--------------------------------------------*/ sendChannel := make(chan int, 3) //可发可接int的chan receiveChannel := make(chan<- float64, 3) //只能发送float64的chan go send(sendChannel) go receive(receiveChannel) select { case <-sendChannel: v := <-sendChannel fmt.Println("v:",v) default: } //v := <-sendChannel fmt.Println(receiveChannel) } func send(channel <-chan int) int { v := <- channel return v } func receive(channel chan<- float64) { channel <- 1.2 }
原文:https://www.cnblogs.com/Ychao/p/14652806.html