【GO】复合类型:切片

简介: 【GO】复合类型:切片

代码

https://github.com/fangkang7/goLearn

案例


屏幕快照 2022-05-18 下午7.30.59.png

package main
import "fmt"
/**
相当于长度可以扩张的数组
经过数组截取的片段就是切片
*/
func main01() {
  // 定义一个十位的数组
  var array = [10]int{0, 23, 14, 56, 89, 65, 32, 14, 10, 23}
  // 截取数组的前9位
  slice := array[0:9]
  fmt.Printf("array的数据类型是%T\n", array)
  fmt.Printf("slice的数据类型是%T,值是%v\n", slice, slice)
  // 下标为0开始截取5位
  slice = array[0:5]
  fmt.Printf("slice的数据类型是%T,值是%v\n", slice, slice)
  // 从0开始截取5位
  slice = array[:5]
  fmt.Printf("slice的数据类型是%T,值是%v\n", slice, slice)
  // 从下标0开始截取全部
  slice = array[0:]
  fmt.Printf("slice的数据类型是%T,值是%v\n", slice, slice)
  // 截取全部
  slice = array[:]
  fmt.Printf("slice的数据类型是%T,值是%v\n", slice, slice)
}
func main() {
  main01()
  var slice []int = []int{}
  fmt.Printf("slice的数据类型是%T\n", slice)
  fmt.Printf("slice的长度是%d,值是%v\n", len(slice), slice)
  // 往切片里边添加元素
  slice = append(slice, 0)
  fmt.Printf("slice的长度是%d,值是%v\n", len(slice), slice)
  slice = append(slice, 11, 22, 33)
  fmt.Printf("slice的长度是%d,值是%v\n", len(slice), slice)
  // 在来熟悉一下遍历数组
  for i := 0; i < len(slice); i++ {
    fmt.Printf("slice的第%d个元素的值是%v\n", i, slice[i])
  }
  for index, value := range slice {
    fmt.Printf("slice的第%d个元素的值是%v\n", index, value)
  }
}

总结

把一个数组改变为切片只需要使用slice来截取即可 这里的使用方法跟PHP很类似,简单了解即可

给一个切片扩容 在go里使用append的方法,在PHP里没有切片的概念可以直接用数组来直接扩容

在go里数组是固定的不变的,除非使用截取来改变类型为切片,否则无法扩容

目录
打赏
0
0
0
0
14
分享
相关文章
|
26天前
|
Go 切片导致 rand.Shuffle 产生重复数据的原因与解决方案
在 Go 语言开发中,使用切片时由于其底层数据共享特性,可能会引发意想不到的 Bug。本文分析了 `rand.Shuffle` 后切片数据重复的问题,指出原因在于切片是引用类型,直接赋值会导致底层数组共享,进而影响原始数据。解决方案是使用 `append` 进行数据拷贝,确保独立副本,避免 `rand.Shuffle` 影响原始数据。总结强调了切片作为引用类型的特性及正确处理方法,确保代码稳定性和正确性。
115 82
|
3月前
|
go语言中数组和切片
go语言中数组和切片
63 7
|
4月前
|
Go语言中,遍历数组或切片
在Go语言中,遍历数组或切片
103 6
|
20天前
|
Go 语言入门指南:切片
Golang中的切片(Slice)是基于数组的动态序列,支持变长操作。它由指针、长度和容量三部分组成,底层引用一个连续的数组片段。切片提供灵活的增减元素功能,语法形式为`[]T`,其中T为元素类型。相比固定长度的数组,切片更常用,允许动态调整大小,并且多个切片可以共享同一底层数组。通过内置的`make`函数可创建指定长度和容量的切片。需要注意的是,切片不能直接比较,只能与`nil`比较,且空切片的长度为0。
Go 语言入门指南:切片
Go语言实战:错误处理和panic_recover之自定义错误类型
本文深入探讨了Go语言中的错误处理和panic/recover机制,涵盖错误处理的基本概念、自定义错误类型的定义、panic和recover的工作原理及应用场景。通过具体代码示例介绍了如何定义自定义错误类型、检查和处理错误值,并使用panic和recover处理运行时错误。文章还讨论了错误处理在实际开发中的应用,如网络编程、文件操作和并发编程,并推荐了一些学习资源。最后展望了未来Go语言在错误处理方面的优化方向。
|
3月前
|
go语言for遍历数组或切片
go语言for遍历数组或切片
153 62
|
4月前
|
go语言遍历数组和切片
go语言遍历数组和切片
35 2
聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
88 4
|
4月前
|
Go
go语言常量的类型
【10月更文挑战第20天】
40 2
监控局域网其他电脑:Go 语言迪杰斯特拉算法的高效应用
在信息化时代,监控局域网成为网络管理与安全防护的关键需求。本文探讨了迪杰斯特拉(Dijkstra)算法在监控局域网中的应用,通过计算最短路径优化数据传输和故障检测。文中提供了使用Go语言实现的代码例程,展示了如何高效地进行网络监控,确保局域网的稳定运行和数据安全。迪杰斯特拉算法能减少传输延迟和带宽消耗,及时发现并处理网络故障,适用于复杂网络环境下的管理和维护。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等