亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Golang 字符串與字節(jié)數(shù)組互轉(zhuǎn)的實(shí)現(xiàn)

 更新時(shí)間:2022年02月22日 09:44:35   作者:頭禿貓輕王  
在Go語(yǔ)言中,我們經(jīng)常在字符串和切片之間進(jìn)行轉(zhuǎn)換,本文就詳細(xì)的介紹一下Golang 字符串與字節(jié)數(shù)組互轉(zhuǎn)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

一、字符串與字節(jié)數(shù)組?

字符串是 Go 語(yǔ)言中最常用的基礎(chǔ)數(shù)據(jù)類型之一,本質(zhì)上是只讀的字符型數(shù)組,雖然字符串往往都被看做是一個(gè)整體,但是實(shí)際上字符串是一片連續(xù)的內(nèi)存空間。

Go 語(yǔ)言中另外一個(gè)類型字節(jié)(Byte)。在ASCII中,一個(gè)英文字母占一個(gè)字節(jié)的空間,一個(gè)中文漢字占兩個(gè)字節(jié)的空間。英文標(biāo)點(diǎn)占一個(gè)字節(jié),中文標(biāo)點(diǎn)占兩個(gè)字節(jié)。一個(gè)Byte數(shù)組中的元素對(duì)應(yīng)一個(gè)ASCII碼。

二、詳細(xì)代碼

1.字節(jié)轉(zhuǎn)字符串

代碼如下(示例):

func BytesToString(data []byte) string {
    return *(*string)(unsafe.Pointer(&data))
}

2.字符串轉(zhuǎn)字節(jié)數(shù)組

代碼如下(示例):

func StringToBytes(data string) []byte {
    return *(*[]byte)(unsafe.Pointer(&data))
}

3.完整運(yùn)行測(cè)試

代碼如下(示例):

func BytesToString(data []byte) string {
?? ?return *(*string)(unsafe.Pointer(&data))
}


func StringToBytes(data string) []byte {
?? ?return *(*[]byte)(unsafe.Pointer(&data))
}

func main() {
?? ?str := "hello world!"

?? ?fmt.Println(str)

?? ?a := StringToBytes(str)

?? ?fmt.Println(a)

?? ?b := BytesToString(a)

?? ?fmt.Println(b)
}

結(jié)果(示例):

成功轉(zhuǎn)譯出Hello world!

總結(jié)

兩個(gè)方法來記住字節(jié)數(shù)組與字符串互轉(zhuǎn),簡(jiǎn)單直接,實(shí)用性拉滿。

在byte數(shù)組轉(zhuǎn)字符串時(shí),需要去掉數(shù)組中ASII為0的字符,數(shù)組的大小是固定的,字符串本身的長(zhǎng)度可能小于數(shù)組的長(zhǎng)度,如果直接轉(zhuǎn)換成字符串就會(huì)出現(xiàn)問題。使用byte切片時(shí)候正常的原因是切片的長(zhǎng)度會(huì)自動(dòng)和字符串的長(zhǎng)度一致,string會(huì)區(qū)切片長(zhǎng)度個(gè)數(shù)的字符。而數(shù)組在初始化時(shí)會(huì)有默認(rèn)值,且數(shù)組的長(zhǎng)度和容量一樣,轉(zhuǎn)換成字符串的時(shí)候可能會(huì)多出一部分字符,從而導(dǎo)致出錯(cuò)。

到此這篇關(guān)于Golang 字符串與字節(jié)數(shù)組互轉(zhuǎn)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Golang 字符串與字節(jié)數(shù)組互轉(zhuǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go語(yǔ)言內(nèi)建函數(shù)cap的實(shí)現(xiàn)示例

    Go語(yǔ)言內(nèi)建函數(shù)cap的實(shí)現(xiàn)示例

    cap 是一個(gè)常用的內(nèi)建函數(shù),它用于獲取某些數(shù)據(jù)結(jié)構(gòu)的容量,本文主要介紹了Go語(yǔ)言內(nèi)建函數(shù)cap的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • 詳解如何在Go項(xiàng)目中輸出版本信息

    詳解如何在Go項(xiàng)目中輸出版本信息

    這篇文章主要介紹了詳解如何在Go項(xiàng)目中輸出版本信息,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • GoLang context包的使用方法介紹

    GoLang context包的使用方法介紹

    日常Go開發(fā)中,Context包是用的最多的一個(gè)了,幾乎所有函數(shù)的第一個(gè)參數(shù)都是ctx,那么我們?yōu)槭裁匆獋鬟fContext呢,Context又有哪些用法,底層實(shí)現(xiàn)是如何呢?相信你也一定會(huì)有探索的欲望,那么就跟著本篇文章,一起來學(xué)習(xí)吧
    2023-03-03
  • go語(yǔ)言中decimal的用法詳解

    go語(yǔ)言中decimal的用法詳解

    本文主要介紹了go語(yǔ)言中decimal的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Go語(yǔ)言建議多使用切片少使用數(shù)組原理探究

    Go語(yǔ)言建議多使用切片少使用數(shù)組原理探究

    這篇文章主要為大家介紹了Go語(yǔ)言建議多使用切片少使用數(shù)組原理探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Go語(yǔ)言的變量定義詳情

    Go語(yǔ)言的變量定義詳情

    這篇文章主要介紹了Go語(yǔ)言的變量定義詳情,go定義變量的方式和c,c++,java語(yǔ)法不一樣,var?變量名類型,var在前,變量名在中間,類型在后面,下文更多詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-03-03
  • golang?熔斷器的實(shí)現(xiàn)過程

    golang?熔斷器的實(shí)現(xiàn)過程

    這篇文章主要介紹了golang?熔斷器的實(shí)現(xiàn)過程,Go?項(xiàng)目中使用熔斷技術(shù)提高系統(tǒng)容錯(cuò)性。接下倆就來給打家介紹?go?熔斷器和其使用,需要的朋友可以參考一下
    2022-01-01
  • go設(shè)置多個(gè)GOPATH的方式

    go設(shè)置多個(gè)GOPATH的方式

    這篇文章主要介紹了go設(shè)置多個(gè)GOPATH的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • GO的range如何使用詳解

    GO的range如何使用詳解

    本文主要介紹了GO的range如何使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 深度解密Go語(yǔ)言中字符串的使用

    深度解密Go語(yǔ)言中字符串的使用

    在編程語(yǔ)言中,字符串發(fā)揮著重要的角色。這篇文章就來帶大家一起深度解密Go語(yǔ)言中的字符串,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2022-09-09

最新評(píng)論