超灬超  
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
}

  

posted on 2021-04-13 13:33  超灬超  阅读(460)  评论(0编辑  收藏  举报