首页 > 编程语言 > 详细

go语言之make

时间:2021-04-13 16:48:29      阅读:16      评论:0      收藏:0      [点我收藏+]
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
}

  

go语言之make

原文:https://www.cnblogs.com/Ychao/p/14652806.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!