>백엔드 개발 >Golang >golang에서 string=을 만드는 방법

golang에서 string=을 만드는 방법

WBOY
WBOY원래의
2023-05-10 10:13:06611검색

Golang에서는 문자열 유형을 변경할 수 없습니다. 이는 문자열이 일단 생성되면 그 자리에서 수정할 수 없고 새 문자열만 생성될 수 있음을 의미합니다. 문자열을 수정하려면 해당 문자열을 수정하기 전에 []byte 또는 []rune과 같은 변수 유형으로 변환해야 합니다.

문자열 유형이 "유사한" 변수 효과를 얻을 수 있도록 하는 방법에 대한 몇 가지 방법을 소개하겠습니다.

방법 1: 문자열을 []바이트 또는 []룬 유형으로 변환

문자열의 특정 문자를 수정하려면 먼저 문자열을 []바이트 또는 []와 같은 변수 유형으로 변환하면 됩니다. 룬 유형. 이는 []byte 또는 []rune 변환 기능을 사용하여 달성할 수 있습니다.

샘플 코드:

str := "Hello, Golang!"
bytes := []byte(str)
bytes[7] = 'W'
str = string(bytes)
fmt.Println(str)

위 코드는 문자열을 []바이트 형식으로 변환한 후, 7번째 문자 'H'를 'W'로 바꾸고, 마지막으로 그 결과를 다시 문자열로 변환하여 출력하는 코드입니다.

[]룬 유형을 사용하여 동일한 작업을 수행할 수도 있습니다:

str := "Hello, Golang!"
runes := []rune(str)
runes[7] = '界'
str = string(runes)
fmt.Println(str)

이번에는 7번째 문자를 한자 "jie"로 바꿉니다.

문자열은 메모리에 UTF-8 인코딩으로 저장되므로 []byte 유형을 사용하여 문자열의 문자를 수정할 때 인코딩 문제에 주의해야 합니다.

방법 2: 문자열 패키지의 바꾸기 함수 사용

문자열의 특정 문자만 바꾸려면 문자열 패키지의 바꾸기 함수를 사용할 수 있습니다.

샘플 코드:

str := "Hello, Golang!"
str = strings.Replace(str, "Golang", "world", -1)
fmt.Println(str)

위 코드는 문자열의 "Golang"을 "world"로 대체합니다.

Replace 함수의 세 번째 매개변수는 대체 횟수입니다. -1은 일치하는 항목을 모두 바꾸는 것을 의미합니다.

방법 3: 바이트 패키지의 Buffer 유형을 사용하세요

문자열 접합과 같이 문자열에 대해 여러 작업을 수행해야 하는 경우 바이트 패키지의 Buffer 유형을 사용할 수 있습니다.

샘플 코드:

var buffer bytes.Buffer
buffer.WriteString("Hello")
buffer.WriteString(" ")
buffer.WriteString("Golang!")
fmt.Println(buffer.String())

위 코드는 Buffer 유형을 사용하여 문자열의 접합 작업을 구현합니다.

방법 4: strings.Builder 유형을 사용하세요

go 언어 버전 1.10 이후에는 문자열 접합 및 수정을 구현하기 위해 string.Builder 유형이 추가되었습니다.

샘플 코드:

var builder strings.Builder
builder.WriteString("Hello")
builder.WriteByte(',')
builder.WriteString("Golang!")
builder.WriteRune('界')
fmt.Println(builder.String())

위 코드는 strings.Builder 유형을 사용하여 문자열 접합 및 수정 작업을 구현하고 유니코드 문자에 대한 WriteRune 메서드도 제공합니다.

방법 5: strconv 패키지의 []byte 유형과 Append 계열 함수를 사용하세요.

다른 유형의 데이터를 문자열로 변환해야 하고 고성능 및 낮은 메모리 작업이 필요한 경우 []byte 유형을 사용할 수 있습니다. 및 strconv 패키지에 시리즈 기능을 추가합니다.

샘플 코드:

var data []byte
data = strconv.AppendBool(data, true)
data = strconv.AppendInt(data, 1234, 10)
data = strconv.AppendFloat(data, 3.14, 'f', 2, 64)
data = strconv.AppendQuote(data, "Hello, Golang!")
str := string(data)
fmt.Println(str)

위 코드는 strconv 패키지의 AppendBool, AppendInt, AppendFloat 및 AppendQuote 함수를 사용하여 bool, int, float 및 문자열 유형의 데이터를 각각 []byte 유형의 데이터로 변환하고 최종적으로 Strings 구현으로 변환합니다. 여러 데이터 유형의 접합 작업.

Append 계열의 기능을 사용할 경우 충분한 버퍼 공간을 수동으로 할당해야 한다는 점에 유의하세요.

요약:

위는 문자열 유형을 변수로 만드는 몇 가지 방법입니다. 특정 필요에 따라 다른 방법을 선택할 수 있습니다. 이러한 방법을 사용할 때 예상치 못한 문제가 발생하지 않도록 코드를 주의 깊게 작성해야 한다는 점에 유의해야 합니다.

위 내용은 golang에서 string=을 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.