切片的使用

package main

import "fmt"

func main() {
   // 定义一个长度为2的切片,其元素的数据类型为string
   var slice = make([]string, 2) // 等价于:var slice []string = make([]string, 2)
   slice[0] = "m"
   slice[1] = "a"

   // 也可以在定义切片时直接设置元素,这样就不需要使用make()函数
   // var slice = []string{"m", "a"}

   fmt.Printf("slice = %+v \n", slice)        // slice = [m a]
   fmt.Printf("slice长度 = %+v \n", len(slice)) // slice长度 = 2

   // 切片追加元素
   slice = append(slice, "n")
   slice = append(slice, "o")
   slice = append(slice, "n")
   slice = append(slice, "g")
   fmt.Printf("slice = %+v \n", slice)        // slice = [m a n o n g]
   fmt.Printf("slice长度 = %+v \n", len(slice)) // slice长度 = 6

   str := ""

   // 遍历切片,使用『for key, value := range 切片』方式
   for _, value := range slice {
      str += value
   }
   fmt.Printf("str = %+v \n", str) // str = manong
}

//========== 总结 ==========//
// 1、切片可以粗略理解为可动态改变长度的数组(注:数组在定义时必须指定长度,且无法修改长度)。
// 2、遍历切片和遍历数组的方式是一样的,都可以通过『for key, value := range slice』来遍历。
// 3、切片判空只能用len(slice)是否为0来判断,不能用slice是否为nil来判断。
// 4、切片与切片之间不能比较,即不能用==来判断两个切片是否相等。

Copyright © 2024 码农人生. All Rights Reserved