首頁 > 後端開發 > Golang > golang 切片 方法 Op

golang 切片 方法 Op

WBOY
發布: 2023-05-14 14:40:38
原創
519 人瀏覽過

【前言】

Go語言中的切片(slice)是一種非常常用的資料結構,常用於動態陣列的操作。在使用中,我們常常需要對切片進行一些增、刪、查、改等操作,而Go語言提供了一些內建方法來實現這些操作。本文將詳細介紹Go語言中切片的基本用法以及常用方法。

【一、切片的定義】

切片是一種長度可變的序列,定義方式為:

var arr []type
登入後複製

這裡的type可以是任意型,例如int 、string等。也可以使用make()方法直接建立一個切片:

arr := make([]type, len, cap)
登入後複製

其中,len表示切片的長度,cap表示切片的容量。這裡要注意的是,切片的容量大於等於長度。

【二、切片的基本操作】

2.1 切片的遍歷

遍歷切片可以使用range關鍵字,程式碼範例如下:

arr := []string{"hello", "world", "go"}

for index, value := range arr {
    fmt.Printf("index:%d, value:%s
", index, value)
}
登入後複製

輸出結果為:

index:0, value:hello
index:1, value:world
index:2, value:go
登入後複製

2.2 切片的添加

#向切片中添加元素可以使用append()方法,如下所示:

var arr []string
arr = append(arr, "hello")
登入後複製

這裡需要注意的是,使用append()方法後,需要將其傳回值重新賦給切片。

2.3 切片的刪除

刪除切片中的元素可以使用內建的delete()方法,如下所示:

arr := []string{"hello", "world", "go"}

arr = append(arr[:1], arr[2:]...)
登入後複製

這裡的語法很有技巧性,我們可以將其分為三個部分:

  • arr[:1]: 表示從0到1(不包括1)的元素,也就是"hello";
  • arr[ 2:]: 表示從2到陣列的最後一個元素(不包括2),也就是"go";
  • #...表示兩個切片合併。

最終的結果就是刪除了下標為1的元素"world"。

2.4 切片的修改

修改切片中的元素可以直接透過下標進行賦值,如下所示:

arr := []string{"hello", "world", "go"}

arr[1] = "Golang"

fmt.Println(arr)
登入後複製

輸出結果為:

[hello Golang go]
登入後複製

【三、切片的常用方法】

這裡列出一些常用的切片方法:

3.1 len()方法

len()方法來取得切片的長度,程式碼範例如下:

arr := []string{"hello", "world", "go"}

fmt.Println(len(arr))
登入後複製

輸出結果為:

3
登入後複製

3.2 cap()方法

cap()方法用來取得切片的容量,程式碼範例如下:

arr := make([]string, 3, 5)

fmt.Println(cap(arr))
登入後複製

輸出結果為:

5
登入後複製

3.3 copy()方法

copy()方法可以將一個切片的值複製到另一個切片中,程式碼範例如下:

var arr1 = []string{"apple", "banana", "orange"}

var arr2 = make([]string, 3)

copy(arr2, arr1)

fmt.Println(arr2)
登入後複製

輸出結果為:

[apple banana orange]
登入後複製

3.4 append()方法

append()方法用於在切片中新增元素,程式碼範例如下:

arr := []string{"hello", "world", "go"}

arr = append(arr, "Golang")

fmt.Println(arr)
登入後複製

輸出結果為:

[hello world go Golang]
登入後複製

3.5 append()方法與擴容

當切片的容量不足以容納新的元素時,append()方法會自動擴容,擴容條件為:

  • 如果新元素的長度小於1024,則切片的容量翻倍;
  • 如果新元素的長度大於等於1024,則每次擴容增加原來容量的1 /4,直到容量足夠。

3.6 append()方法的可變參數

append()方法的輸入參數可以為可變參數,可以在切片中新增多個元素,程式碼範例如下:

arr := []string{"hello", "world", "go"}

arr = append(arr, "Golang", "Python")

fmt.Println(arr)
登入後複製

輸出結果為:

[hello world go Golang Python]
登入後複製

【總結】

本文對Go語言中切片的基本用法以及常用方法進行了詳細的介紹,希望對大家有所幫助。在實際程式碼中,切片的靈活運用可以讓我們的程式碼更簡潔有效率。

以上是golang 切片 方法 Op的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板