Golang에서 문자열을 바이트 배열로 변환

Jay Singh 2023년1월30일
  1. byte() 함수를 사용하여 Golang에서 문자열을 바이트 배열로 변환
  2. []byte(strToConvert)를 사용하여 Golang에서 문자열을 바이트 배열로 변환
  3. copy() 함수를 사용하여 Golang에서 문자열을 바이트 배열로 변환
  4. []byte를 사용하여 Golang에서 문자열을 바이트 슬라이스로 변환
Golang에서 문자열을 바이트 배열로 변환

Go가 처음이고 이것이 왜 바이트 배열인지 궁금하다면 혼자가 아닙니다. 제가 처음에 Go을 배우기 시작했을 때 컴퓨터 과학자 지인이 저에게 가장 먼저 물어본 것 중 하나였습니다.

Golang에서 문자열을 바이트 배열로 변환할 때 문자열의 바이트를 포함하는 슬라이스를 얻습니다. Go의 문자열은 읽기 전용 바이트 조각일 뿐입니다. 문자열은 임의의 수의 바이트를 전달할 수 있습니다. 그러므로 즉시 말하는 것이 중요합니다.

유니코드 텍스트, UTF-8 텍스트 또는 기타 지정된 형식은 필요하지 않습니다. 문자열은 내용 측면에서 바이트 조각과 동일합니다.

다음은 Go에서 문자열 작업에 대한 몇 가지 유용한 힌트입니다.

byte() 함수를 사용하여 Golang에서 문자열을 바이트 배열로 변환

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]

[]byte(strToConvert)를 사용하여 Golang에서 문자열을 바이트 배열로 변환

이 예에서는 []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]

copy() 함수를 사용하여 Golang에서 문자열을 바이트 배열로 변환

이 예에서 문자열은 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]

[]byte를 사용하여 Golang에서 문자열을 바이트 슬라이스로 변환

문자열은 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