在 Golang 中將字串轉換為位元組陣列

Jay Singh 2023年1月30日
  1. Golang 中使用 byte() 函式將字串轉換為位元組陣列
  2. 在 Golang 中使用 []byte(strToConvert) 將字串轉換為位元組陣列
  3. Golang 中使用 copy() 函式將字串轉換為位元組陣列
  4. 在 Golang 中使用 []byte 將字串轉換為位元組切片
在 Golang 中將字串轉換為位元組陣列

如果你是 Go 新手並想知道為什麼這是一個位元組陣列,那麼你並不孤單。當我最初開始學習 Go 時,這是一位電腦科學家熟人問我的第一件事。

當你在 Golang 中將字串轉換為位元組陣列時,你將獲得一個包含字串位元組的切片。Go 中的字串只是一個只讀位元組切片。一個字串可以攜帶任意數量的位元組;因此,重要的是馬上說出來。

Unicode 文字、UTF-8 文字或任何其他指定格式是不必要的。就其內容而言,字串與位元組切片相同。

以下是在 Go 中處理字串的一些有用提示。

Golang 中使用 byte() 函式將字串轉換為位元組陣列

使用 Golang 中的 byte() 函式將 String 轉換為 Byte 陣列。一個位元組是一個無符號的 8 位整數。byte() 方法返回一個陣列,該方法將字串作為輸入。

當你建立一個字串時,你實際上是在建立一個位元組陣列。因此,你可以像讀取陣列一樣讀取單個位元組。

例如,以下程式碼遍歷字串中的每個位元組並將其輸出為字串和位元組。

package main

import "fmt"

func main() {
	str := "hello boss!"
	data := []byte(str)
	fmt.Println(data)
}

輸出:

[104 101 108 108 111 32 98 111 115 115 33]

在 Golang 中使用 []byte(strToConvert) 將字串轉換為位元組陣列

在此示例中,我們將使用 []byte(strToConvert) 在 Golang 中將字串轉換為位元組陣列。

package main

import (
	"fmt"
)

func main() {
	var strToConvert string
	strToConvert = "hello boss!"
	byteString := []byte(strToConvert)
	fmt.Println(byteString)
}

輸出:

[104 101 108 108 111 32 98 111 115 115 33]

Golang 中使用 copy() 函式將字串轉換為位元組陣列

在本例中,字串將使用 copy() 函式複製到位元組陣列中。結果,我們宣告瞭一個位元組陣列並使用複製函式將字串複製到其中。

package main

import (
	"fmt"
)

func main() {
	var strToConvert string
	strToConvert = "hello boss!"
	byteString := make([]byte, len(strToConvert))
	copy(byteString, strToConvert)
	fmt.Println(byteString)
}

輸出:

[104 101 108 108 111 32 98 111 115 115 33]

在 Golang 中使用 []byte 將字串轉換為位元組切片

在 Go 中,字串可以轉換為位元組切片 []byte,位元組切片可以轉換回字串。這是一個簡單的過程,似乎與任何其他型別的更改相同。

這種轉換經常用於將字串輸入到將位元組切片或位元組切片輸入到需要字串的函式的函式中。

package main

import "fmt"

func main() {
	var s string = "hello boss!"
	fmt.Println(s)
	var b []byte
	b = []byte(s)
	fmt.Println(b)
	for i := range b {
		fmt.Println(string(b[i]))
	}
	s = string(b)
	fmt.Println(s)
}

輸出:

hello boss!
[104 101 108 108 111 32 98 111 115 115 33]
h
e
l
l
o
 
b
o
s
s
!
hello boss!

相關文章 - Go String