在go語(yǔ)言中,join()是strings包的一個(gè)字符串處理函數(shù),可以將數(shù)組(切片)轉(zhuǎn)為字符串,即將字符串切片(數(shù)組)中存在的所有元素連接為單個(gè)字符串;語(yǔ)法“strings.Join(s,sep) ”,參數(shù)“s”為用來(lái)連接元素的字符串切片(數(shù)組),參數(shù)“sep”是放置在最終字符串中元素之間的分隔符。
本教程操作環(huán)境:windows7系統(tǒng)、GO 1.18版本、Dell G3電腦。
golang中的join方法
Golang中的strings.Join()函數(shù)將字符串切片(數(shù)組)中存在的所有元素連接為單個(gè)字符串。該函數(shù)在字符串包中可用。
func Join(s []string, sep string) string
-
在這里,s是可用來(lái)連接元素的字符串切片(數(shù)組),sep是放置在最終字符串中元素之間的分隔符。
返回值:它返回一個(gè)字符串。
說(shuō)明:
go中的Join()函數(shù)跟js中的Array.prototype.join方法差不多,都是給數(shù)組的每個(gè)元素中拼接一個(gè)目標(biāo)字符串,目標(biāo)字符串為join方法的參數(shù)
與js不同的是,js是弱類型的語(yǔ)言,因此可以直接為一個(gè)number的數(shù)組使用join方法,在執(zhí)行過(guò)程中,js會(huì)把number類型的數(shù)組隱式的轉(zhuǎn)換為string類型的數(shù)組然后進(jìn)行字符串拼接,而golang是一種強(qiáng)類型靜態(tài)的語(yǔ)言,在golang中不允許這樣做,必須顯式的進(jìn)行類型轉(zhuǎn)換或者直接傳入一個(gè)字符串?dāng)?shù)組,否則在編譯期就會(huì)拋出異常。
strings.Join([]int{1,2,3},"+") //error
除此之外,strings.Join方法比普通的"str"+"str2"這種形式的字符串拼接效率更高,這是因?yàn)閟tring本身就是一個(gè)常量,那拼接成一個(gè)新字符串,就必須要銷毀原string對(duì)象,然后使當(dāng)前引用指向新的字符串對(duì)象,這樣做的開(kāi)銷是非常大的,而strings.Join則不用。
使用示例
示例1:
// Golang program to illustrate the // use of strings.Join Function package main // importing fmt and strings import ( "fmt" "strings" ) // calling main method func main() { // array of strings. str:= []string{"Geeks", "For", "Geeks"} // joining the string by separator fmt.Println(strings.Join(str, "-")) }
輸出:
Geeks-For-Geeks
示例2:
// Golang program to illustrate the // use of strings.Join Function package main // importing fmt and strings import ( "fmt" "strings" ) // calling main method func main() { // array of strings. str:= []string{"A", "Computer-science", "portal", "for", "Geeks"} // joining the string by separator in middle. fmt.Println(strings.Join(str, " ")) }
輸出:
A Computer-science portal for Geeks
【