Go語言的切片

2021-10-09 09:44:10 字數 726 閱讀 5266

go 語言切片是對陣列的抽象。

go 陣列的長度不可改變,在特定場景中這樣的集合就不太適用,go中提供了一種靈活,功能強悍的內建型別切片("動態陣列"),與陣列相比切片的長度是不固定的,可以追加元素,在追加時可能使切片的容量增大。(在一定程度上可以看做乙個動態陣列)

切片的方式:

1.

var identifier type
2.或者使用make()函式來建立切片,make(【】t,length,capacity)這裡的len是陣列的長度並且也是切片的初始長度

var slice1 type = make(type, len)

也可以簡寫為

slice1 := make(type, len)

初始化:

s := int
簡單的例項

package main

import "fmt"

func main()

func printslice(x int){

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

//len=3 cap=5 slice=[0 0 0]

乙個切片在未初始化之前預設nil,長度為0

增加切片容量

1.先將原來的切片內容複製到更大的切片上(copy函式)

Go語言切片

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

go語言 切片

一 概述 low 陣列下標的起點 high 陣列下標的結束點 不包括此點 arr low arr high len 長度 high low cap 容量 max low 二 切片的長度與容量 package main import fmt func main slice arr 0 3 5 fmt....

Go語言 切片

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