Golang で文字列をバイト配列に変換する

Jay Singh 2023年1月30日
  1. Golang で byte() 関数を使用して文字列をバイト配列に変換する
  2. Golang で []byte(strToConvert) を使用して文字列をバイト配列に変換する
  3. Golang で copy() 関数を使用して文字列をバイト配列に変換する
  4. Golang で []byte を使用して文字列をバイトスライスに変換する
Golang で文字列をバイト配列に変換する

Go を初めて使用する場合、これがバイト配列である理由を疑問に思うのはあなただけではありません。私が最初に Go を学び始めたとき、それはコンピューター科学者の知人が私に最初に尋ねたものの 1つでした。

Golang で文字列をバイト配列に変換すると、文字列のバイトを含むスライスが取得されます。Go の文字列は、読み取り専用のバイトスライスです。文字列は任意のバイト数を運ぶことができます。したがって、すぐにそれを言うことが重要です。

Unicode テキスト、UTF-8 テキスト、またはその他の指定された形式は不要です。文字列は、その内容に関してはバイトのスライスと同じです。

Go で文字列を操作するためのヒントをいくつか紹介します。

Golang で byte() 関数を使用して文字列をバイト配列に変換する

Golang の 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() 関数を使用して文字列がバイト配列にコピーされます。その結果、バイト配列を宣言し、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