当前位置:   article > 正文

Golang基础-5

Golang基础-5

Go语言基础

介绍

基础

介绍

  • 本文介绍Go语言中切片(slice)(切片声明、切片初始化、切片基础操作、多维切片)等相关知识。

基础

切片
  • 切片(slice)是对数组的一个连续片段的引用,切片是一个引用类型。
  • 切片是长度可变的数组,由三部分组成:
    • 指针:指向的数组元素的地址
    • 长度:元素的数量
    • 容量:切片可容纳多少元素
切片声明
  • 需要指定组成元素的类型,不需要指定存储元素的个数。
  • 声明后,默认初始化为 nil,意思是不存在此切片引用。
package main

import "fmt"

func main() {
	// 声明一个切片
	var slice1 []int
	fmt.Printf("slice1 type: %T, value: %v\n", slice1, slice1)
	// 自动类型推导
	slice2 := []int{}
	fmt.Printf("slice2 type: %T, value: %v\n", slice2, slice2)
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

输出结果
slice1 type: []int, value: []
slice2 type: []int, value: []

切片初始化
  • 切片初始化方式较多,具体如下
package main

import "fmt"

func main() {
	// 字面量初始化
	var slice1 []int = []int{1, 2, 3, 4, 5}
	fmt.Println("slice1: ", slice1, ", cap: ", cap(slice1))
	// 字面量初始化空切片
	var slice2 []int = []int{}
	fmt.Println("slice2: ", slice2, ", cap: ", cap(slice2))
	// 从数组创建并初始化切片
	var arr [5]int = [5]int{1, 2, 3, 4, 5}
	slice3 := arr[0:3]
	fmt.Println("slice3: ", slice3, ", cap: ", cap(slice3))
	slice4 := arr[0:2:2]
	fmt.Println("slice4: ", slice4, ", cap: ", cap(slice4))
	// 从切片创建并初始化切片
	slice5 := slice4[:1]
	fmt.Println("slice5: ", slice5, ", cap: ", cap(slice5))
	slice6 := slice4[1:]
	fmt.Println("slice6: ", slice6, ", cap: ", cap(slice6))
	slice7 := slice4[:]
	fmt.Println("slice7: ", slice7, ", cap: ", cap(slice7))
	slice8 := slice4[0:0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
  

闽ICP备14008679号