在go語言中,可以使用列表內(nèi)置的Len()函數(shù)來獲取list長度,語法“列表list.Len()”,返回值為指定list的長度。Len()函數(shù)可用于計算數(shù)組(包括數(shù)組指針)、切片(slice)、map、channel、字符串等數(shù)據(jù)類型的長度;注意,結(jié)構(gòu)休(struct)、整型布爾等不能作為參數(shù)傳給len函數(shù)。
本教程操作環(huán)境:windows7系統(tǒng)、GO 1.18版本、Dell G3電腦。
在go語言中,可以使用列表內(nèi)置的Len()函數(shù)來獲取list長度。
計算list長度的語法格式:
Len() int
-
使用列表內(nèi)置的 Len() 函數(shù),獲取列表的長度。
示例:
package main import ( "container/list" "fmt" ) func main() { //使用列表內(nèi)置的 Len() 函數(shù),獲取列表的長度 listHaiCoder := list.New() listHaiCoder.PushFront("Hello") listHaiCoder.PushFront("HaiCoder") listHaiCoder.PushFront("嗨客網(wǎng)") len := listHaiCoder.Len() fmt.Println("Len =", len) }
分析:
-
我們通過 list.New 創(chuàng)建了一個列表 listHaiCoder,接著使用 PushFront 函數(shù)在列表的頭部連續(xù)插入了三個元素。最后,我們使用列表內(nèi)置的 Len 函數(shù),獲取列表的長度。
說明:
len函數(shù)是Go語言中的內(nèi)置函數(shù),因此,在Go程序中可以直接調(diào)用。
其作用是用于計算數(shù)組(包括數(shù)組指針)、切片(slice)、map、channel、字符串等數(shù)據(jù)類型的長度,注意,結(jié)構(gòu)休(struct)、整型布爾等不能作為參數(shù)傳給len函數(shù)。
-
數(shù)組或數(shù)組指針:返回元素個數(shù)
-
map和slice: 元素個數(shù)
-
channel:通道中未讀的元素個數(shù)
-
字符串:字節(jié)數(shù),并非字符串的字符數(shù)
-
當(dāng)V的值為nil值,len返回0
sl := make([]int,0) sl = nil if sl == nil{ fmt.Println(len(sl)) //當(dāng)slice類型為nil時,輸出0 } s := "歡迎學(xué)習(xí)Go的len()函數(shù)"//14個字符 fmt.Println(len(s))//輸入28
在處理字符串時,經(jīng)常需要知道字符串的字符數(shù),但len()只計算字符串字節(jié)數(shù),因此我們可以自定義處理字符串個數(shù)的函數(shù)。
//rune是32位的int別外,可以代表一個unicode字符,因此,通過將字符串將成rune類型的切片,切片元素個數(shù)代表字符個數(shù) func count(str string) int { r := []rune(str) return len(r) } s := "歡迎學(xué)習(xí)Go的len()函數(shù)"//14個字符 fmt.Println(count(s))//14 fmt.Println(len(s))//28
【