Go语言创建、初始化数组的常见方式汇总

 更新时间:2015年02月08日 11:26:58   作者:books1958  
这篇文章主要介绍了Go语言创建、初始化数组的常见方式,实例汇总了Go语言操作数组的常见技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例总结了Go语言创建、初始化数组的常见方式。分享给大家供大家参考。具体分析如下:

Go语言的语法很灵活,以下展示了创建并初始化数组的多种方式:

复制代码 代码如下:
//数组初始化的各种方式 
func arraySliceTest0201() { 
    //创建数组(声明长度) 
    var array1 = [5]int{1, 2, 3} 
    fmt.Printf("array1--- type:%T \n", array1) 
    rangeIntPrint(array1[:]) 
 
    //创建数组(不声明长度) 
    var array2 = [...]int{6, 7, 8} 
    fmt.Printf("array2--- type:%T \n", array2) 
    rangeIntPrint(array2[:]) 
 
    //创建数组切片 
    var array3 = []int{9, 10, 11, 12} 
    fmt.Printf("array3--- type:%T \n", array3) 
    rangeIntPrint(array3) 
 
    //创建数组(声明长度),并仅初始化其中的部分元素 
    var array4 = [5]string{3: "Chris", 4: "Ron"} 
    fmt.Printf("array4--- type:%T \n", array4) 
    rangeObjPrint(array4[:]) 
 
    //创建数组(不声明长度),并仅初始化其中的部分元素,数组的长度将根据初始化的元素确定 
    var array5 = [...]string{3: "Tom", 2: "Alice"} 
    fmt.Printf("array5--- type:%T \n", array5) 
    rangeObjPrint(array5[:]) 
 
    //创建数组切片,并仅初始化其中的部分元素,数组切片的len将根据初始化的元素确定 
    var array6 = []string{4: "Smith", 2: "Alice"} 
    fmt.Printf("array6--- type:%T \n", array6) 
    rangeObjPrint(array6) 

 
//输出整型数组切片 
func rangeIntPrint(array []int) { 
    for i, v := range array { 
        fmt.Printf("index:%d  value:%d\n", i, v) 
    } 

 
//输出字符串数组切片 
func rangeObjPrint(array []string) { 
    for i, v := range array { 
        fmt.Printf("index:%d  value:%s\n", i, v) 
    } 
}

希望本文所述对大家的GO语言程序设计有所帮助。

相关文章

  • GoLang协程库libtask学习笔记

    GoLang协程库libtask学习笔记

    libtask一个C语言的协程库,是go语言的前身很早期的原型. 测试机器是我的mac air 安装的centos虚拟机(只有一个核), 代码没有采用任何优化,只是使用默认配置
    2022-12-12
  • 详解go-zero如何实现令牌桶限流

    详解go-zero如何实现令牌桶限流

    令牌桶算法既能够将所有的请求平均分布到时间区间内,又能接受服务器能够承受范围内的突发请求,因此是目前使用较为广泛的一种限流算法,本文就来看看go-zero如何实现令牌桶限流的吧
    2023-08-08
  • golang中byte和rune用法及新手易错点总结

    golang中byte和rune用法及新手易错点总结

    golang内置类型有rune类型和byte类型,下面这篇文章主要给大家介绍了关于golang中byte和rune用法及新手易错点总结的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • golang中三种线程安全的MAP小结

    golang中三种线程安全的MAP小结

    在Go语言中,Map是并发不安全的,本文主要介绍了golang中三种线程安全的MAP小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • golang遍历时修改被遍历对象的示例详解

    golang遍历时修改被遍历对象的示例详解

    这篇文章主要介绍了golang遍历时修改被遍历对象的示例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • GO日志打印如何添加goroutineid

    GO日志打印如何添加goroutineid

    今天想给日志添加一个前缀,以区分不同goroutine的日志,方便做并发问题的排查,做日志跟踪,下面给大家分享GO日志打印如何添加goroutineid,感兴趣的朋友跟随小编一起看看吧
    2024-05-05
  • golang反向代理设置host不生效的问题解决

    golang反向代理设置host不生效的问题解决

    在使用golang的httputil做反向代理的时候,发现一个奇怪的现象,上游网关必须要设置host才行,不设置host的话,golang服务反向代理请求下游会出现http 503错误,接下来通过本文给大家介绍golang反向代理设置host不生效问题,感兴趣的朋友一起看看吧
    2023-05-05
  • Go 内联优化让程序员爱不释手

    Go 内联优化让程序员爱不释手

    这篇文章主要介绍了Go 内联优化让程序员爱不释手,内联是在编译过程中自动进行的一类基本优化之一,文章围绕主题展开更多详细介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • GO workPool的线程池实现

    GO workPool的线程池实现

    本文主要介绍了GO workPool的线程池实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • golang 限制同一时间的并发量操作

    golang 限制同一时间的并发量操作

    这篇文章主要介绍了golang 限制同一时间的并发量操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12

最新评论