首页 > 编程语言 > 详细

golang 数组切片和字典

时间:2017-02-05 11:35:13      阅读:438      评论:0      收藏:0      [点我收藏+]

golang语言的数组 切片和字典

package main
import (
    "fmt"
)

func main(){
    var a[10] int //定义一个数字长度为10,存储int类型
    a[0] = 10   // 存储
    a[1] = 20
    a[2] = 30
    a[3] = 40
    fmt.Println(a[0],a[1],a[2],a[3])  //通过序列打印
    fmt.Println(a)                    //打印整个数组,因为定义长度为10,而我们只存了4个,所有后面的部分将以零值填充。
    // 运行结果

    10 20 30 40
    [10 20 30 40 0 0 0 0 0 0]
    //初始化并赋值     
    num := [5]int{1,2,3,4,5}  //初始化并赋值
    fmt.Println(num)
    
    //数组遍历
    for i,value := range num{  //索引和值
        fmt.Println(value,i)
    }
    
    //数组定义时可不定义切片大小
    sliceOne := []int{1,2,3,4,5}
    fmt.Println(sliceOne[0],sliceOne[1],sliceOne[2])
    
    //通过开始索引和结束索引创建一个新的切片
    sliceTwo := sliceOne[1:3]  //返回sliceOne中索引1到索引3,但不包含3
    fmt.Println(sliceTwo)  //运行结果:[2 3]
    
    //可省略开始索引,省略表示从索引0开始
    fmt.Println(sliceOne[:3]) //返回索引0-索引3,不包含3
    
    //可省略结束索引,省略表示直到最后一个
    fmt.Println(sliceOne[1:]) //打印索引1到最后,全部被打印出来 运行结果:[2 3 4 5]

    //同事省略开始和结束表示复制全部切片
    fmt.Println(sliceOne[:])
    
    //使用make初始化并设定长度与容量
    sliceThree := make([]int,5,10)//表示初始化一个切片,长度为5,最大容量为10,即在内存中申请了能放置10个长度的空间,这样在有新元素插入的时候就不用再动态分配空间提高效率。
    fmt.Println(sliceThree) //运行结果:[0 0 0 0 0]
    
    //使用len 和cap 查看切片的长度和容量
    fmt.Println(len(sliceThree)) 
    fmt.Println(cap(sliceThree))//运行结果:5 10
    
    //使用append来追加元素
    sliceThree = append(sliceThree,2,3,4)
    fmt.Println(sliceThree) //运行结果:[0 0 0 0 0 1 2 3 4]
    
    // 字典map
    // 使用make来创建map
    m := make(map[string]int) //定义建值为字符串,值为整型
    m["first"] = 1
    fmt.Println(m["first"]) //运行结果:1
    m["first"] = 2
    fmt.Println(m["first"]) //运行结果:2    
    //使用len获取map长度
    fmt.Println(len(m)) //运行结果:1
    
    //检查map中是否包含某个建值
    v,ok :=m["third"] //如果包含建值third那么,v等于third对应的值,ok为true,否则v为零值,ok为false
    fmt.Print(v,ok) //运行结果:0 false
    
    //delete删除map中的建值对
    delete(m,"first")
    fmt.Println(m) 
     
    //创建的时候初始化
    var mp = map[string]int{
        "first" : 1,
        "second" : 2,
    }
    
    //字典嵌套
    outer := map[string]map[string]int{
        "inner1":map[string]int{
            "first":1,
            "second":2,
        }
        "inner2":map[string]int{
            "first":3,
            "second":4,
        }        
    }    
}


本文出自 “欺壹世De博客” 博客,请务必保留此出处http://qiyishi.blog.51cto.com/5731577/1894909

golang 数组切片和字典

原文:http://qiyishi.blog.51cto.com/5731577/1894909

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