欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何將Golang數(shù)組slice轉(zhuǎn)為逗號(hào)分隔的string字符串

 更新時(shí)間:2023年09月28日 15:34:17   作者:加拉薩假期  
這篇文章主要介紹了如何將Golang數(shù)組slice轉(zhuǎn)為逗號(hào)分隔的string字符串問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

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語言中的匿名函數(shù)

    一文帶你了解Go語言中的匿名函數(shù)

    無論是在Go語言還是其他編程語言中,匿名函數(shù)都扮演著重要的角色,本文將詳細(xì)介紹Go語言中匿名函數(shù)的概念和使用方法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-06-06
  • Go語言中的復(fù)合類型詳細(xì)介紹

    Go語言中的復(fù)合類型詳細(xì)介紹

    這篇文章主要介紹了Go語言中的復(fù)合類型詳細(xì)介紹,復(fù)合類型包括:結(jié)構(gòu)體、數(shù)組、切片、Maps,需要的朋友可以參考下
    2014-10-10
  • go 判斷兩個(gè) slice/struct/map 是否相等的實(shí)例

    go 判斷兩個(gè) slice/struct/map 是否相等的實(shí)例

    這篇文章主要介紹了go 判斷兩個(gè) slice/struct/map 是否相等的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Golang實(shí)現(xiàn)KV存儲(chǔ)引擎實(shí)例探究

    Golang實(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使用說明

    這篇文章主要介紹了對(duì)Golang中的runtime.Caller使用說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 深入理解Go語言中defer和panic的執(zhí)行順序

    深入理解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-05
  • Go項(xiàng)目中的GOPROXY設(shè)置

    Go項(xiàng)目中的GOPROXY設(shè)置

    GOPROXY是Go語言中用于指定模塊代理服務(wù)器的環(huán)境變量,設(shè)置GOPROXY可以通過操作系統(tǒng)環(huán)境變量、Go命令行參數(shù)或Go環(huán)境配置文件進(jìn)行,感興趣的可以了解一下
    2024-09-09
  • Go代碼檢查工具golangci-lint安裝使用方法

    Go代碼檢查工具golangci-lint安裝使用方法

    這篇文章主要給大家介紹了關(guān)于Go代碼檢查工具golangci-lint安裝使用的相關(guān)資料,golangci-lint用于許多開源項(xiàng)目中,比如kubernetes、Prometheus、TiDB等都使用golangci-lint用于代碼檢查,需要的朋友可以參考下
    2024-01-01
  • go?defer延遲調(diào)用的使用場(chǎng)景示例詳解

    go?defer延遲調(diào)用的使用場(chǎng)景示例詳解

    這篇文章主要為大家介紹了go?defer延遲調(diào)用的使用場(chǎng)景示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Gotify搭建你的消息推送系統(tǒng)

    Gotify搭建你的消息推送系統(tǒng)

    這篇文章主要介紹了Gotify搭建你的消息推送系統(tǒng),今天要分享的是 gotify,是一個(gè)用 go 編寫的消息服務(wù)端,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2024-01-01

最新評(píng)論