当前位置: 首页 > news >正文

Go 语言切片(Slice) 15

在 Go 语言中,切片(Slice)是一种可以容纳多个值的数据结构,它可以被视为一个可变的数组。切片是一个引用类型,它可以容纳任意类型的值,可以是整数、字符串、浮点数、结构体等。

切片的声明方式是使用 [] 语法,例如:[]int 或 []string。切片可以在运行时被创建和修改,可以是空的,也可以包含多个值。

声明和初始化

可以使用以下方式声明和初始化切片:

var s []int

这将声明一个名为 s 的空切片,可以容纳整数值。

也可以使用字面量初始化切片:

s := []int{1, 2, 3, 4, 5}

这将声明一个名为 s 的切片,包含整数值 1 到 5

还可以使用 make 函数初始化切片:

s := make([]int, 5)

这将声明一个名为 s 的切片,容纳整数值,初始大小为 5

访问和修改

可以使用索引访问切片中的值,例如:

s := []int{1, 2, 3, 4, 5}
fmt.Println(s[0]) //输出 1
fmt.Println(s[4]) //输出 5

也可以使用索引修改切片中的值,例如:

s := []int{1, 2, 3, 4, 5}
s[0] = 10
fmt.Println(s) //输出 [10 2 3 4 5]

切片的长度和容量

切片的长度是指切片中实际包含的值的数量,可以使用 len 函数获取:

s := []int{1, 2, 3, 4, 5}
fmt.Println(len(s)) //输出 5

切片的容量是指切片的内存大小,可以使用 cap 函数获取:

s := []int{1, 2, 3, 4, 5}
fmt.Println(cap(s)) //输出 5

切片的 append 操作

可以使用 append 函数将值添加到切片中:

s := []int{1, 2, 3, 4, 5}
s = append(s, 6, 7, 8)
fmt.Println(s) //输出 [1 2 3 4 5 6 7 8]

切片的 copy 操作

可以使用 copy 函数将切片中的值复制到另一个切片中:

s1 := []int{1, 2, 3, 4, 5}
s2 := make([]int, len(s1))
copy(s2, s1)
fmt.Println(s2) //输出 [1 2 3 4 5]

切片的 sort 操作

可以使用 sort 函数对切片中的值进行排序:

s := []int{4, 2, 1, 3, 5}
sort.Ints(s)
fmt.Println(s) //输出 [1 2 3 4 5]

切片的 reverse 操作

可以使用 reverse 函数对切片中的值进行反转:

s := []int{1, 2, 3, 4, 5}
reverse(s)
fmt.Println(s) //输出 [5 4 3 2 1]
http://www.lryc.cn/news/425912.html

相关文章:

  • 嵌入式开发--STM32G030C8T6,写片上FLASH死机CFGBSY和写入出错
  • 通过Fiddler抓包保存网页上的视频(包括Bilibili、B站和其他视频站)亲测可用
  • 企业为什么需要安装加密软件
  • Spring Web MVC入门(下)
  • uniapp app中使用柱状图 折线图 圆环图和饼图
  • jmreport测试数据库出现 权限不足,此功能需要分配角色 解决方法
  • 这是啥设计模式-适配模式
  • 大语言模型(LLMs)Tokenizers详解
  • 分支-快排/归并---1
  • 代码随想录训练营 Day32打卡 动态规划 part01 理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯
  • 【智能流体力学】剖析ANSYS Fluent材料属性设定与边界条件
  • 微信小程序反编译工具
  • 线程基本概念
  • 在SpringBoot中执行后台任务
  • 【网络】UDP回显服务器和客户端的构造,以及连接流程
  • 【智能流体力学】ANSYS Fluent工作流程设置、求解和后处理详解
  • 最新UI六零导航系统源码 | 多模版全开源
  • K8S中使用英伟达GPU —— 筑梦之路
  • 2024-2025年最值得选的Java计算机毕业设计选题大全:800个热门选题
  • libnl教程(2):发送请求
  • 【软件测试】功能测试理论基础
  • 玩机进阶教程-----回读 备份 导出分区来制作线刷包 回读分区的写入与否 修改xml脚本
  • MongoDB 插入文档
  • 【内网】服务器升级nginx1.17.0
  • 歌曲爬虫下载
  • transformer-explainer
  • C#中的S7协议
  • 2024-08-16升级记录:使用Android RecyclerView控件显示列表型信息
  • 通义千问 ( 一 ) 基础实例
  • docker 修改数据目录