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