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

Golang 字符串與字節(jié)數組互轉的實現

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

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

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

Go 語言中另外一個類型字節(jié)(Byte)。在ASCII中,一個英文字母占一個字節(jié)的空間,一個中文漢字占兩個字節(jié)的空間。英文標點占一個字節(jié),中文標點占兩個字節(jié)。一個Byte數組中的元素對應一個ASCII碼。

二、詳細代碼

1.字節(jié)轉字符串

代碼如下(示例):

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

2.字符串轉字節(jié)數組

代碼如下(示例):

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

3.完整運行測試

代碼如下(示例):

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)
}

結果(示例):

成功轉譯出Hello world!

總結

兩個方法來記住字節(jié)數組與字符串互轉,簡單直接,實用性拉滿。

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

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

相關文章

  • Go指針內存與安全性深入理解

    Go指針內存與安全性深入理解

    這篇文章主要為大家介紹了Go指針內存與安全性深入理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Golang中優(yōu)秀的消息隊列NSQ基礎安裝及使用詳解

    Golang中優(yōu)秀的消息隊列NSQ基礎安裝及使用詳解

    這篇文章主要介紹了Golang中優(yōu)秀的消息隊列NSQ基礎安裝及使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 總結Golang四種不同的參數配置方式

    總結Golang四種不同的參數配置方式

    這篇文章主要介紹了總結Golang四種不同的參數配置方式,文章圍繞主題展開詳細的內容戒殺,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • Go中過濾范型集合性能示例詳解

    Go中過濾范型集合性能示例詳解

    這篇文章主要為大家介紹了Go中過濾范型集合性能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Go語言中使用gorm小結

    Go語言中使用gorm小結

    這篇文章主要給大家介紹了Go語言中如何使用gorm,文中介紹的很詳細,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • Windows10系統(tǒng)下安裝Go環(huán)境詳細步驟

    Windows10系統(tǒng)下安裝Go環(huán)境詳細步驟

    Go語言是谷歌推出的一款全新的編程語言,可以在不損失應用程序性能的情況下極大的降低代碼的復雜性,這篇文章主要給大家介紹了關于Windows10系統(tǒng)下安裝Go環(huán)境的詳細步驟,需要的朋友可以參考下
    2023-11-11
  • 淺談golang 中time.After釋放的問題

    淺談golang 中time.After釋放的問題

    這篇文章主要介紹了淺談golang 中time.After釋放的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Go語言開發(fā)瀏覽器視頻流rtsp轉webrtc播放

    Go語言開發(fā)瀏覽器視頻流rtsp轉webrtc播放

    這篇文章主要為大家介紹了Go語言開發(fā)瀏覽器視頻流rtsp轉webrtc播放的過程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • Golang中如何對MySQL進行操作詳解

    Golang中如何對MySQL進行操作詳解

    這篇文章主要給大家介紹了關于在Golang中如何對MySQL進行操作的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用Golang具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-03-03
  • Golang 類型轉換的實現(斷言、強制、顯式類型)

    Golang 類型轉換的實現(斷言、強制、顯式類型)

    將一個值從一種類型轉換到另一種類型,便發(fā)生了類型轉換,在go可以分為斷言、強制、顯式類型轉換,本文就詳細的介紹一下這就幾種轉換方式,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09

最新評論