Go语言切片的使用

wbnyua / 2023-08-25 / 原文

目录
  • 2.切片的使用
    • 2.1 切片的定义方式1:
    • 2.2 切片的定义方式2:
    • 2.3 切片的定义方式3:
    • 2.4 切片的定义方式4:
    • 2.5 切片的定义方式5:
    • 2.6 切片的定义方式6:
  • 遍历方式和数组差不多

2.切片的使用

2.1 切片的定义方式1:

package main

import "fmt"

func main() {
	var slice []string
	slice = append(slice, "A")
	slice = append(slice, "B")
	slice = append(slice, "C")
	fmt.Println(slice)
	fmt.Printf("%T", slice)
    // 控制台输出:[A B C]
	// 控制台输出:[]string
}

2.2 切片的定义方式2:

package main

import "fmt"

func main() {
	var slice []string = []string{"A", "B", "C"}
	fmt.Println(slice)
	fmt.Printf("%T", slice)
	// 控制台输出:[A B C]
	// 控制台输出:[]string
}

2.3 切片的定义方式3:

package main

import "fmt"

func main() {
	var arr = [5]string{"A", "B", "C", "D", "E"}
	slice := arr[0:3]
	fmt.Println(slice)
	fmt.Printf("%T", slice)
	// 控制台输出:[A B C]
	// 控制台输出:[]string
}

2.4 切片的定义方式4:

package main

import "fmt"

func main() {
	var slice = []string{"A", "B", "C", "D", "E"}

	slice2 := slice[0:3]
	fmt.Println(slice2)
	fmt.Printf("%T", slice2)
	// 控制台输出:[A B C]
	// 控制台输出:[]string
}

2.5 切片的定义方式5:

package main

import "fmt"

func main() {
	slice := make([]string, 3)
	slice[0] = "A"
	slice[1] = "B"
	slice[2] = "C"
	fmt.Println(slice)
	fmt.Printf("%T", slice)
	// 控制台输出:[A B C]
	// 控制台输出:[]string
}

2.6 切片的定义方式6:

package main

import "fmt"

func main() {
	slice := make([]string, 3, 5)

	fmt.Println(slice)
	fmt.Printf("len = %d  ", len(slice))
	fmt.Printf("cap = %d\n", cap(slice))
	// 控制台输出:[  ]
	// 控制台输出:len = 3  cap = 5

	slice[0] = "A"
	slice[1] = "B"
	slice[2] = "C"
	fmt.Println(slice)
	fmt.Printf("len = %d  ", len(slice))
	fmt.Printf("cap = %d\n", cap(slice))
	// 控制台输出:[A B C]
	// 控制台输出:len = 3  cap = 5

	slice = append(slice, "D")
	fmt.Println(slice)
	fmt.Printf("len = %d  ", len(slice))
	fmt.Printf("cap = %d\n", cap(slice))
	// 控制台输出:[A B C D]
	// 控制台输出:len = 3  cap = 5

	slice = append(slice, "E")
	fmt.Println(slice)
	fmt.Printf("len = %d  ", len(slice))
	fmt.Printf("cap = %d\n", cap(slice))
	// 控制台输出:[A B C D E]
	// 控制台输出:len = 5  cap = 5

	slice = append(slice, "F")
	fmt.Println(slice)
	fmt.Printf("len = %d  ", len(slice))
	fmt.Printf("cap = %d\n", cap(slice))
	// 控制台输出:[A B C D E F]
	// 控制台输出:len = 6  cap = 10

	slice = append(slice, "G")
	fmt.Println(slice)
	fmt.Printf("len = %d  ", len(slice))
	fmt.Printf("cap = %d\n", cap(slice))
	// 控制台输出:[A B C D E F G]
	// 控制台输出:len = 7  cap = 10

}

遍历方式和数组差不多