如何將Golang數(shù)組slice轉(zhuǎn)為逗號(hào)分隔的string字符串
Golang數(shù)組slice轉(zhuǎn)為逗號(hào)分隔的string字符串
如將:
var a = []int{1,2,3,4}變?yōu)?quot;[1,2,3,4]"。
最硬核的辦法就是建一個(gè)slice的臨時(shí)中轉(zhuǎn):[]string 類型, 然后用strings.Join():
var src = []int{1,2,3,4} var temp = make([]string, len(src)) for k, v := range src { ? ? temp[k] = fmt.Sprintf("%d", v) } var result = "[" + strings.Join(temp, ",") + "]"
然后不久后想到了一個(gè)比較簡(jiǎn)便的方法json.Marshal():
var a = []int{1,2,3,4} b, err := json.Marshal(a) if err != nil { ?? ?panic(err) } var result = string(b)
go數(shù)組或切片轉(zhuǎn)為字符串問題
基本介紹
1)string底層是一個(gè)byte數(shù)組,因此string也可以進(jìn)行切片處理,案例演示:
package main import ( "fmt" ) func main() { // 1. string底層是一個(gè)byte數(shù)組,因此string也可以進(jìn)行切片處理 str := "tianwanggaidihu" // 使用切片獲取到atguigu slice := str[6:] fmt.Println("slice=",slice) }
2)string和切片在內(nèi)存的形式,以"abcd"畫出內(nèi)存示意圖
3)string是不可變的,也就是說不能通過 str[0]='z'方式來修改字符串
4)如果需要修改字符串,可以先將string => []byte 或者 []rune => 修改 => 重寫轉(zhuǎn)成string
package main import ( "fmt" ) func main() { // 4. 如果需要修改字符串,可以先將string => []byte 或者 []rune => 修改 => 重寫轉(zhuǎn)成string // 轉(zhuǎn)成byte可以處理英文和數(shù)字,但是不能處理中文 // 原因是 []byte 是一個(gè)字節(jié),而一個(gè)漢字是 3個(gè)字節(jié),因此會(huì)出現(xiàn)亂碼 // 解決辦法是將string 轉(zhuǎn)成 []rune 即可,因?yàn)?[]rune是按字符處理,兼容漢字 // 1)轉(zhuǎn)成 []byte var str1 = "moerwubuhaha北京歡迎你" slice1 := []byte(str1) slice1[0] = 'z' slice1[len(slice1) - 1] = 'z' str1 = string(slice1) fmt.Println("使用[]byte處理string:",str1) // 2)轉(zhuǎn)成 []rune var str2 = "您好啊shenmeniuma北京歡迎你,天安門歡迎您" slice2 := []rune(str2) slice2[0] = '牛' str2 = string(slice2) fmt.Println("使用[]rune處理string:",str2) }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
go 判斷兩個(gè) slice/struct/map 是否相等的實(shí)例
這篇文章主要介紹了go 判斷兩個(gè) slice/struct/map 是否相等的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12Golang實(shí)現(xiàn)KV存儲(chǔ)引擎實(shí)例探究
這篇文章主要為大家介紹了Golang實(shí)現(xiàn)KV存儲(chǔ)引擎實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01對(duì)Golang中的runtime.Caller使用說明
這篇文章主要介紹了對(duì)Golang中的runtime.Caller使用說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12深入理解Go語言中defer和panic的執(zhí)行順序
defer?和?panic?的執(zhí)行順序是一個(gè)重要的概念,本文主要介紹了Go語言中defer和panic的執(zhí)行順序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-05-05go?defer延遲調(diào)用的使用場(chǎng)景示例詳解
這篇文章主要為大家介紹了go?defer延遲調(diào)用的使用場(chǎng)景示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05