zoukankan      html  css  js  c++  java
  • go语言之make

    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
    }
    

      

    你不能把坏习惯扔出窗外 但你可以一步步赶下电梯
  • 相关阅读:
    vue-router基础使用
    Vue插槽
    Vue组件通信
    小程序自定义头部导航栏
    css日常积累
    移动端的无缝轮播图片
    vue的h5开发中,将页面保存为图片
    vue-webpack打包问题
    洛谷P1341 最受欢迎的奶牛
    Tarjan 算法详解
  • 原文地址:https://www.cnblogs.com/Ychao/p/14652806.html
Copyright © 2011-2022 走看看