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

Go入门之数组与切片

var arr1 = [...]int{1, 2, 3}
	fmt.Println(len(arr1))

数组长度不能扩展

var arr2 = [...]int{0: 100, 5: 101}
	fmt.Println(len(arr2))
}

指定索引初始化

可以通过for和range遍历

值类型:基本数据类型和数组都是值类型,改变副本的值不会改变本身的值

切片为引用数据类型 改变副本会改变本身的值

var arr1 []int
	fmt.Println(arr1)
	fmt.Println(arr1 == nil) //go中切片为空默认值是nil

	a := [5]int{55, 56, 57, 58, 59}
	b := a[:]
	fmt.Printf("%v %T\n", b, b)
	c := a[2:4]
	fmt.Printf("%v %T\n", c, c)
	fmt.Printf("%d %d\n", len(c), cap(c))

go中切片为空默认值是nil,可以基于数组定义切片,同样也可以基于切片定义切片,:表示所有元素,2:4表示索引2到3之间的元素。len为切片元素个数,cap为切片容量,它是第一个元素开始数,到其底层数组元素的个数

	var slice = make([]int, 4, 8)
	fmt.Println(slice, len(slice), cap(slice))
	slice = append(slice, 1)
	fmt.Println(slice, len(slice), cap(slice))
	slice1 := []int{1}
	slice = append(slice, slice1...)
	fmt.Println(slice, len(slice), cap(slice))

可以通过make指定初始切片的元素个数和容量,通过append增加或者合并两个切片

切片为引用数据类型,需要通过copy(目标切片,需要拷贝的切片)来复制

切片没有删除方法,可以通过切片的性质用append函数删除

sort.Ints(),sort.Float64s(),sort.Strings()进行升序排序

降序排序

相关文章:

  • 【基础架构篇八】《DeepSeek异构计算:CPU/GPU/TPU协同加速方案》
  • 基于Spring Boot的社区居民健康管理平台的设计与实现
  • 【Vue3】Vue 3 中列表排序的优化技巧
  • Qt的QTabWidget样式设置
  • Python----数据结构(双向链表:节点,是否为空,长度,遍历,添加,删除,查找,循环链表)
  • 伯克利 CS61A 课堂笔记 10 —— Trees
  • 阿里云ACK+GitLab企业级部署实战教程
  • 数据库配置文件
  • 【Linux网络-网络基础】TCP/IP五层(或四层)模型+网络传输的基本流程
  • DeepSeek R1:中国AI黑马的崛起与挑战
  • 外包干了3天,技术退步太明显了。。。
  • sql not in 优化
  • 【WRF模拟】全过程总结:更换不同研究时段改动总结
  • 简单易懂的金融知识:如何解读股指期货?股指期货如何做?
  • C#知识大纲回顾
  • 国产银河麒麟v10操作系统 添加epel源
  • 力扣高频sql 50题(基础版) :NULL, 表连接,子查询,case when和avg的结合
  • VirtualBox 中使用 桥接网卡 并设置 MAC 地址
  • 关于C#的一些基础知识点汇总
  • Redis 全方位解析:从入门到实战
  • 夜读丨喜马拉雅山的背夫
  • 欧盟决意与俄罗斯能源彻底决裂之际,美国谋划新生意:进口俄气对欧转售
  • 比特币价格重返10万美元,哪些因素使然?
  • 江苏省人社厅党组书记、厅长王斌接受审查调查
  • 国家主席习近平同普京总统举行大范围会谈
  • 5月12日至13日北京禁飞“低慢小”航空器