go語言 切片

2021-09-03 03:08:49 字數 1520 閱讀 6229

一、概述

low:陣列下標的起點           high:陣列下標的結束點(不包括此點)  [arr[low]:arr[high])

len:長度=high-low             cap:容量=  max-low

二、切片的長度與容量

package main

import "fmt"

func main()

slice := arr[0:3:5]

fmt.println("slice=", slice) // 列印切片

fmt.println("len(slice)=", len(slice)) // 長度 3-0

fmt.println("cap(slice)=", cap(slice)) // 容量 5-0

fmt.println("****************************************=")

slice = arr[1:4:5]

fmt.println("slice=", slice) // 列印切片 從下標1開始

fmt.println("len(slice)=", len(slice)) // 長度 4-1

fmt.println("cap(slice)=", cap(slice)) // 容量 5-1

}

三、切片的建立

package main

import "fmt"

func main()

fmt.printf("len=%d, =%d\n", len(arr), cap(arr))

// 切片 裡面為空,或者... ,切片的長度和容量可以不固定

slice := int{}

fmt.printf("len=%d, cap=%d\n", len(slice), cap(slice))

// 給切片的末尾追加乙個元素

}

package main

import "fmt"

func main()

fmt.println("slice1=", slice1)

// 建立的方式2:借助make函式 make(切片型別,長度,容量)

slice2 := make(int, 4, 6)

fmt.printf("len=%d, cap=%d\n", len(slice2), cap(slice2))

// 建立方式3:沒有指定容量,容量和長度一樣

slice3 := make(int, 5)

fmt.printf("len=%d, cap=%d\n", len(slice3), cap(slice3))

}

Go語言切片

go語言切片 go語言切片是對陣列的抽象 go 陣列的長度不可改變,在特定場景中這樣的集合就不太適用,go中提供了一種靈活,功能強悍的內建型別切片 動態陣列 與陣列相比切片的長度是不固定的,可以追加元素,在追加時可能使切片的容量增大。宣告乙個未指定大小的陣列來定義切片 var identifier ...

Go語言 切片

因為陣列的長度是固定的並且陣列長度屬於型別的一部分,所以陣列有很多的侷限性。例如 func arraysum x 3 int int return sum 這個求和函式只能接受 3 int型別,其他的都不支援。再比如,a 3 int陣列a中已經有三個元素了,我們不能再繼續往陣列a中新增新元素了。切片...

go語言切片

切片 slice 是乙個擁有相同型別元素的可變長度的序列,他是基於陣列型別做的一層封裝,非常靈活,支援自動擴容。切片是乙個引用型別,他的內容結構包含位址 長度 容量。用於快速操作一塊資料集合。切片的本質 對底層陣列的封裝,包含三個資訊 底層陣列的指標 切片的長度 切片的容量。1.切片定義 var n...