Go语言基础切片的创建及初始化示例分析
发表于:2025-11-21 作者:千家信息网编辑
千家信息网最后更新 2025年11月21日,这篇文章主要介绍"Go语言基础切片的创建及初始化示例分析",在日常操作中,相信很多人在Go语言基础切片的创建及初始化示例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2025年11月21日Go语言基础切片的创建及初始化示例分析make
赋值和切片
切片增长
这篇文章主要介绍"Go语言基础切片的创建及初始化示例分析",在日常操作中,相信很多人在Go语言基础切片的创建及初始化示例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Go语言基础切片的创建及初始化示例分析"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
概述
切片是一种动态数组
按需自动改变大小
与数组相比,切片的长度可以在运行时修改
语法
一、创建和初始化切片
make
使用内置函数make()创建切片:
var slice []type = make([]type, len, cap) //简写: slice := make([]type, len, cap)
字面量
var 变量名 []type
slice1:=[]string{"张三","李四"} // 长度和容量都是5个元素的字符串切片slice2 := []int{10, 20, 30} // 长度和容量都是3个元素的整型切片二、使用切片
赋值和切片
使用[]操作符就可以改变某个元素的,实例如下:
// 创建一个整型切片// 其容量和长度都是5个元素slice1:=[]string{"张三","李四","王五","马六","老七"}// 改变索引为1的元素的值slice1[1] = "小张三"使用切片创建切片
// 创建一个整型切片// 其长度和容量都是5个元素slice1:=[]string{"张三","李四","王五","马六","老七"}// 创建一个新切片// 其长度为3个元素,容量为3个元素newSlice:=slice1[2:5]切片增长
使用append向切片增加元素,同时增加切片的长度和容量
// 创建一个整型切片// 其长度和容量都是5个元素slice1:=[]string{"张三","李四","王五","马六","老七"}// 使用原有的容量来分配一个新元素// 将新元素赋值为60newSlice:=append(slice1,"我是新来的")遍历切片
使用 for range 迭代切片
slice1 := []string{"张三", "李四", "王五", "马六", "老七"}for k, v := range slice1 { fmt.Println(k, v)}使用 for 循环迭代切片
slice1 := []string{"张三", "李四", "王五", "马六", "老七"}for i := 0; i < len(slice1); i++ { fmt.Println(i,slice1[i])}总结
slice 的默认开始位置是0,ar[:n]等价于ar[0:n]
slice是引用类型,是一个指向数组的指针
不能使用 == 来判断两个slice 是给含有全部相同元素
>判断 slice 是否为空,使用 len(s) == 0 , 而不是 s == nil
总示例
package mainimport ( "fmt")func main() { //一、创建切片 var slice []int = make([]int, 3) fmt.Println(slice) slice1 := []string{"张三", "李四", "王五", "马六", "老七"} fmt.Println(slice1) slice2 := []int{10, 20, 30} fmt.Println(slice2) //二、使用切片 //使用[]操作符就可以改变某个元素 slice1[1] = "小张三" fmt.Println(slice1) //使用切片创建切片【下标是从0开始】 newSlice := slice1[0:2] fmt.Println(newSlice) //切片增长 newSlice = append(slice1, "我是新来的") fmt.Println(newSlice) // 使用 for range 迭代切片【k:表示下标,v表示值】 for k, v := range slice1 { fmt.Println(k, v) } // 使用 for 循环迭代切片 for i := 0; i < len(slice1); i++ { fmt.Println(i,slice1[i]) }}示例一 两个slice是否相等
package mainimport ( "fmt" "reflect")func main() { //两个slice是否相等 slice1 := []string{"张三", "李四", "王五", "马六"} slice2 := []string{"张三", "李四", "王五", "马六"} if reflect.DeepEqual(slice1, slice2) { fmt.Println("两个slice相等") } else { fmt.Println("两个slice不相等") }}示例二 两个数字是否包含
package mainimport ( "fmt" "sort" "strings")func main() { slice1 := []string{"张三", "李四", "王五", "马六", "老七"} fmt.Println(slice1) target := "李四" i := sort.Search(len(slice1), func(i int) bool { return slice1[i] >= target }) if strings.EqualFold(slice1[i], target) { fmt.Println(target, "存在,它的下标是", i) } else { fmt.Println("不存在", target) }}到此,关于"Go语言基础切片的创建及初始化示例分析"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
元素
李四
张三
王五
容量
长度
示例
两个
基础
语言
语言基础
分析
学习
迭代
下标
数组
操作符
更多
小张
增长
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
近年十大网络安全事件
数学如何应用于软件开发
校园活动软件开发
watch红表服务器关了吗
fatego梅林池服务器
网络安全监控中心干什么的
营业执照软件开发影响
云服务器带宽租用
云开发数据库字段
GEO服务器
神武4多久开放一次服务器
淮南专业模具软件开发
网络安全宣传报8k
php编写数据库查询接口
软件开发与服务有哪些股票
机长网络技术有限公司
直销软件开发来 直销大师
计算机网络安全重点知识
湖北银联网络技术服务哪家好
海康录像机串口服务器
数据库 地图
数据库原理与应用的知识点
高中信息技术网络技术选择题
网络安全简历图片
网络安全开头素材
fatego梅林池服务器
加拿大炒作网络安全问题
手机代理服务器安全吗
浪潮信息服务器有什么用
数据库中int型的位数