go切片的默认值、循环切片、将数组变成切片、切片的长度和容量

默认值

bool--->默认值: false
numbers--->默认值: 0
string--->默认值: ""
slices[切片]--->默认值: nil

验证切片的默认值是nil

package main
import ("fmt")
// 入口函数
func main()  {
  // 切片
  var arr []int
  fmt.Printf("%v",arr == nil ) // true
}

循环遍历切片

package main
import ("fmt")
// 入口函数
func main()  {
  // 切片
  var arr = []string {"php","java","哈哈"}
  for i := 0; i < len(arr); i++ {
    fmt.Printf("%v\n",arr[i])
  }
}

循环遍历切片(2)

package main
import ("fmt")
// 入口函数
func main()  {
  // 切片
  var arr = []string {"php","java","哈哈"}
  for _,value := range arr {
		fmt.Println(value)
	}
}

将数组变成切片

package main
import ("fmt")
// 入口函数
func main()  {
  // 切片
  var arr = []string {"php","java","哈哈"}
  b:=arr[:]
  fmt.Printf("类型:%T,值是:%v", b,b)
}

类型:[]string,值是:[php java 哈哈]
方括号里面没有数字和扩展运算符是:切片

golang中怎么区别数组和切片?

在 Go 语言中,核心就看类型声明中方括号里有没有数字。
方括号里面有数字和扩展运算符是:数组
方括号里面没有数字和扩展运算符是:切片

获取数组的部分值,然后变成切片:相当于js数组的slice(0,2)

package main
import ("fmt")
// 入口函数
func main()  {
  // 切片
  var arr = []string {"php","java","哈哈"}
  // 相当于js数组的slice(0,2)方法
  b:=arr[0:2]
  fmt.Printf("类型:%T,值是:%v", b,b)
}

类型:[]string,值是:[php java]

package main
import ("fmt")
// 入口函数
func main()  {
  // 切片
  var arr = []string {"php","java","哈哈", "golang"}
  // 相当于js数组的slice(1)方法
  b:=arr[1] // 获取下标1后面的所有内容
  fmt.Printf("类型:%T,值是:%v", b,b)
}

获取切片的长度和容量

package main
import ("fmt")
// 入口函数
func main()  {
  // 切片
  var arr = []string {"php","java","哈哈", "golang"}
  fmt.Printf("长度:%d,容量是:%d", len(arr),cap(arr))
}

长度:4,容量是:4
因为长度和容量是一个数字,我们可以使用 %d 来表示

关于切片的长度和容量

长度:切片的长度就是它所包含的元素个数
容量:切片的容量是从它的第一个元素开始数,到其[底层数组]元素末尾的个数

package main
import ("fmt")
// 入口函数
func main()  {
  // 切片
  var arr = []string {"php","java","哈哈", "golang"}
  b:=arr[1:3] // 获取下标1后面的所有内容
  fmt.Printf("长度:%d,容量是:%d", len(b),cap(b))
}

长度:2,容量是:3
为啥容量是3? 因为从第一个元素开始数,到其[底层数组]元素末尾的个数
["java","哈哈", "golang"] 所以是3个

c9f8b244-0f5a-4dd1-b9d9-66f430b95be4
c6dc5101-3fee-4478-ab76-64b82894cd6b

posted @ 2026-08-31 19:55  何人陪我共长生  阅读(5)  评论(0)    收藏  举报