• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

GO中的数组切片

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

GO中的数组切片可以看做是功能更强大的数组,在append数据时,可以自动调整内存大小以适应数据实际大小,有些类似于C#中的List<T>。

GO 中数组切片的“容量”与实际储存的大小可以不同,比如一个杯子容量是500ml,实际只装了200ml的水。

数组切片的基本用法:

 

fmt.Println("数组切片可以看做是一种比普通数组更强大的数组")
    //数组切片
    fmt.Println("数组切片:")
    fmt.Println("首先创建数组:")
    var aryVal []int = []int{1, 2, 3, 4, 5, 6, 7, 8}
    //fmt.Println("Arry = ", aryVal)
    //根据数组创建数组切片
    fmt.Println("根据数组创建数组切片[从 0 ~ 2]:")
    var aryClince []int = aryVal[:3]
    fmt.Println("aryClince = ", aryClince)
    var aryClince2 []int = aryVal[3:len(aryVal)]
    fmt.Println(aryClince2)
    //直接通过make函数床架数组切片
    fmt.Println("直接通过make函数床架数组切片:")
    var slicel []int = make([]int, 6)
    fmt.Println("函数make创建的数组切片默认将元素初始化为对应类型的默认值:")
    fmt.Println("slicel = ", slicel)
    for i, _ := range slicel {
        slicel[i] = i + 1
    }
    fmt.Println("对切片赋值后:")
    fmt.Println(slicel)

    fmt.Println("切片的储存能力和当前储存量可以不同")
    var slicel2 []int = make([]int, 12, 20)
    for i := 0; i <= 4; i++ {
        slicel2[i] = i + 1
    }
    fmt.Println("slicel2 = ", slicel2)
    fmt.Println("cap of slicel2(切片预留的储存能力) = ", cap(slicel2))
    fmt.Println("length of slicel2(切片当前储存量) = ", len(slicel2))
    //切片后动态追加数据  使用append函数追加数据
    var slicel4 []int = make([]int, 5, 15)
    for i := 0; i < len(slicel4); i++ {
        slicel4[i] = i + 1
    }
    fmt.Println("slicel4 = ", slicel4)
    //
    slicel4 = append(slicel4, 9, 0, 1, 2, 3)
    fmt.Println("Append datas :", slicel4)
    temslicel := []int{22, 3, 44, 55, 66, 77, 88}
    slicel4 = append(slicel4, temslicel...) //注:后面 ... 表示将切片打散为单个元素后进行插入
    fmt.Println("Appended slicel:", slicel4)

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
go表单发布时间:2022-07-10
下一篇:
Go版本管理--依赖包存储发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap