zoukankan      html  css  js  c++  java
  • Golang slice和map的申明和初始化

    1 前言

    仅供记录使用。

    2 代码

    /**
     * @Author: FB
     * @Description: 
     * @File:  SliceMapInit.go
     * @Version: 1.0.0
     * @Date: 2019/7/5 14:39
     */
    
    package main
    
    import "fmt"
    
    func main(){
    	InitSlice()
    	InitMap()
    }
    
    func InitSlice(){
    	//三个等价
    	var a []int
    	var a1 = []int{}
    	var b = make([]int,0)
    	var b2 = make([]int,0,0)
    
    	//报错
    	//a[0] = 1
    	//b[0] = 2
    	showVals(a,a1,b,b2)
    	showVals("---------end 1---------")
    	//三个等价
    	var c = []int{0,0,0}
    	var d = make([]int,3)
    	var d2 = make([]int,3,3)
    
    	var d3 = make([]int,3,5)
    
    	c[0] = 1
    	d[0] = 2
    	showVals(c,d,d2)
    	showVals("---------end 2---------")
    
    	//报错,因为长度只有3
    	//d[3] = 3
    	showVals(d,len(d),cap(d))
    
    	//报错,因为长度只有3
    	//d3[3] = 3
    	showVals(d3,len(d3),cap(d3))
    	showVals("---------end 3---------")
    
    	//append 以上两种情况都可以
    	a = append(a,1,2,3)
    	b = append(b,1,2,3)
    	d = append(d,1,2,3)
    	d3 = append(d3,1,2,3)
    	showVals("a",a,len(a),cap(a))
    	showVals("b",b,len(b),cap(b))
    	showVals("d",d,len(d),cap(d))
    	showVals("d3",d3,len(d3),cap(d3))
    
    }
    
    func InitMap(){
    	var a map[string]string
    	showVals(a)
    	// add these lines:
    	/*
    		myGreeting["Tim"] = "Good morning."
    		myGreeting["Jenny"] = "Bonjour."
    	*/
    	// and you will get this:
    	// panic: assignment to entry in nil map
    
    	//OK
    	var b = make(map[string]string)
    	//等价写法shorthand_make
    	//b := make(map[string]string)
    
    	//init
    	b["Tim"] = "Good morning."
    	b["Jenny"] = "Bonjour."
    	showVals(b)
    
    	//OK
    	c := map[string]string{}
    	//init
    	c["Tim"] = "Good morning."
    	c["Jenny"] = "Bonjour."
    	showVals(c)
    
    	//init
    	c1 := map[string]string{
    		"Tim":   "Good morning!",
    		"Jenny": "Bonjour!",
    	}
    
    	c1["FB"] = "Hi"
    	c1["Jenny"] = "Hello"
    	c1["Jenny2"] = "Hello2"
    
    	showVals(c1,len(c1))
    	delete(c1,"Jenny2")
    	showVals(c1)
    
    	//key := "FB2"
    	key := "FB"
    	if val, exists :=  c1[key];exists{
    		showVals(val)
    		delete(c1,key)
    		showVals(c1)
    	}else{
    		showVals("no found",key)
    	}
    
    	//遍历
    	for key, val := range c1 {
    		fmt.Println(key, " - ", val)
    	}
    
    }
    
    func showVals(vals ...interface{}){
    	for _,v :=range vals{
    		fmt.Print(v,"	")
    	}
    	fmt.Println()
    }
    

      

  • 相关阅读:
    RequireJS的简单应用
    关于浏览器兼容处理—— 识别IE浏览器
    Div+CSS命名规范
    用CSS开启硬件加速来提高网站性能(转)
    5步解决移动设备上的300ms点击延迟
    全面理解BFC
    纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)
    Less和Sass编译
    Linux初级知识_03 -- 系统基础命令
    Linux初级知识_02 -- 基础命令
  • 原文地址:https://www.cnblogs.com/fanbi/p/11138537.html
Copyright © 2011-2022 走看看