• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >Golang > Go语言中slice的用法实例分析

Go语言中slice的用法实例分析

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了go语言 slice,go语言实例,go语言,go语言环境搭建,go语言程序设计等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了Go语言中slice的用法。分享给大家供大家参考。具体如下:

slice 指向数组的值,并且同时包含了长度信息。
[]T 是一个元素类型为 T 的 slice。
import "fmt"
func main() {
 p := []int{2, 3, 5, 7, 11, 13}
 fmt.Println("p ==", p)
 for i := 0; i < len(p); i++ {
  fmt.Printf("p[%d] == %d\n",
   i, p[i])
 }
}</div>

slice 可以重新切片,创建一个新的 slice 值指向相同的数组。

表达式
表示从 lo 到 hi-1 的 slice 元素,含有两端。 因此
是空的,而
有一个元素。
import "fmt"
func main() {
 p := []int{2, 3, 5, 7, 11, 13}
 fmt.Println("p ==", p)
 fmt.Println("p[1:4] ==", p[1:4])
 // missing low index implies 0
 fmt.Println("p[:3] ==", p[:3])
 // missing high index implies len(s)
 fmt.Println("p[4:] ==", p[4:])
}</div>

slice 由函数 make 创建。这会分配一个零长度的数组并且返回一个 slice 指向这个数组:
       
slice 有长度和容量。slice 的容量是底层数组可以增长的最大长度。
为了指定容量,可传递第三个参数到 make:
// len(b)=0, cap(b)=5</div>
       
slice 可以通过“重新切片”来扩容(增长到容量上限):
b = b[1:]      // len(b)=4, cap(b)=4
package main
import "fmt"
func main() {
 a := make([]int, 5)
 printSlice("a", a)
 b := make([]int, 0, 5)
 printSlice("b", b)
 c := b[:2]
 printSlice("c", c)
 d := c[2:5]
 printSlice("d", d)
}
func printSlice(s string, x []int) {
 fmt.Printf("%s len=%d cap=%d %v\n",
  s, len(x), cap(x), x)
}</div>

slice 的零值是 nil。

一个 nil 的 slice 的长度和容量是 0。
import "fmt"
func main() {
 var z []int
 fmt.Println(z, len(z), cap(z))
 if z == nil {
  fmt.Println("nil!")
 }
}</div>

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

</div>

您可能想查找下面的文章:

  • 深入解析Go语言编程中slice切片结构
  • Go语言中slice的用法实例分析
  • Go语言中的Array、Slice、Map和Set使用详解

相关文章

  • go语言中时间戳格式化的方法
  • Go语言中反射的正确使用
  • 深入剖析Go语言编程中switch语句的使用
  • golang网络socket粘包问题的解决方法
  • go语言实现处理表单输入
  • Mac OS系统安装golang教程
  • 谈谈Go语言的反射三定律
  • Go语言RPC Authorization进行简单ip安全验证的方法
  • go语言实现AES加密的方法
  • Go语言截取字符串函数用法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 理解Golang中的数组(array)、切片(slice)和map
    • go语言中if语句用法实例
    • Go语言中的内存布局详解
    • Ubuntu下安装Go语言开发环境及编辑器的相关配置
    • Go语言计算两个经度和纬度之间距离的方法
    • Go语言MessageBox用法实例
    • Go语言中使用 buffered channel 实现线程安全的 pool
    • Go语言中的Array、Slice、Map和Set使用详解
    • GO语言实现的端口扫描器分享
    • golang简单获取上传文件大小的实现代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有