【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里数组是固定的不变的,除非使用截取来改变类型为切片,否则无法扩容

相关文章
|
21天前
|
存储 Go 索引
go语言中数组和切片
go语言中数组和切片
34 7
|
1月前
|
Go 索引
Go语言中,遍历数组或切片
在Go语言中,遍历数组或切片
43 6
|
23天前
|
Go 索引
go语言for遍历数组或切片
go语言for遍历数组或切片
93 62
|
27天前
|
Go 索引
go语言遍历数组和切片
go语言遍历数组和切片
20 2
|
1月前
|
JSON 前端开发 JavaScript
聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
45 4
|
1月前
|
Go
go语言常量的类型
【10月更文挑战第20天】
26 2
|
1月前
|
存储 Go
|
1月前
|
Java Go 数据处理
go语言使用切片而非数组
【10月更文挑战第18天】
16 1
|
1月前
|
Go