Go에서 문자열을 효율적으로 연결하는 방법
-
더하기 (
+
) 연산자 사용 -
Print()
함수에 여러 개의 인수가있는 경우 -
Join()
함수로 -
Sprintf()
메소드 -
bytes.Buffer
메소드 -
strings.Builder
메소드 -
+=
연산자로 추가 - 다른 방법의 비교
둘 이상의 ‘문자열’을 하나의 새로운 ‘문자열’로 병합하는 동작을 ‘문자열 연결’이라고합니다. ‘문자열 연결’은 프로그래밍에서 가장 널리 수행되는 작업 중 하나입니다. 이 기사에서는 Go 프로그래밍 언어로 문자열을 장단점으로 연결하는 다양한 방법에 대해 설명합니다.
더하기 (+
) 연산자 사용
+
를 사용하는 것은 문자열 연결에 가장 단순하고 가장 널리 사용되는 방법입니다. 때때로+
연산자는 연결 연산자라고도합니다.
package main
import "fmt"
func main() {
str_1 := "Welcome to "
str_2 := "the Blog!!"
fmt.Println("str_1: ", str_1)
fmt.Println("str_2: ", str_2)
fmt.Println("Combined String: ", str_1+str_2)
}
출력:
str_1: Welcome to
str_2: the Blog!!
Combined String: Welcome to the Blog!!
Print()
함수에 여러 개의 인수가있는 경우
Go
의Print()
함수에 인수로 여러 개의 문자열을 전달할 수 있습니다. 문자열 사이에 공백을 추가하여 문자열이 자동으로 연결됩니다.
package main
import "fmt"
func main() {
fmt.Println("String", "Concatenation!!")
}
출력:
String Concatenation!!
Join()
함수로
또한 문자열 패키지에 존재하는join()
함수를 사용하여 문자열을 연결하여 문자열 조각과 구분 기호를 사용하여 단일 문자열을 생성 할 수 있습니다.
통사론:
func Join(str []string, sep string) string
여기서str
은 요소를 연결하는 문자열 조각이며,sep
는 조각 사이에있는 구분 기호입니다.
package main
import (
"fmt"
"strings" //for join() function
)
func main() {
str_slices := []string{"This", "is",
"String", "Concatenation!!"}
str_concat := strings.Join(str_slices, "-")
fmt.Println(str_concat)
}
출력:
This-is-String-Concatenation!!
Sprintf()
메소드
fmt
패키지에서Sprintf()
메소드를 사용하는 것도 문자열 연결을위한 가장 간단한 메소드 중 하나입니다.
package main
import "fmt"
func main() {
str_1 := "We will"
str_2 := " Rock"
str_3 := " You!!"
str_final := fmt.Sprintf("%s%s%s", str_1, str_2, str_3)
fmt.Println(str_final)
}
출력:
We will Rock You!!
bytes.Buffer
메소드
불필요한 문자열 객체를 생성하지 않고 문자열을 연결하는 효율적인 방법은bytes.Buffer
방법입니다. WriteString()
메소드를 사용하여 문자열을 바이트 버퍼에 쓴 다음 문자열로 변환 할 수 있습니다.
package main
import (
"bytes"
"fmt"
)
func main() {
var byte_buf bytes.Buffer
byte_buf.WriteString("Hello ")
byte_buf.WriteString("World!!")
fmt.Println(byte_buf.String())
}
출력:
Hello World!!
strings.Builder
메소드
이 방법을 사용하면 다른 메모리에 비해 매우 적은 메모리를 사용하여 문자열을 효율적으로 연결할 수 있습니다.
package main
import (
"fmt"
"strings"
)
func main() {
var str_build strings.Builder
str_build.WriteString("Hello ")
str_build.WriteString("World!!")
fmt.Println(str_build.String())
}
출력:
Hello World!!
+=
연산자로 추가
더하기 연산자를 사용하는 문자열 연결과 비슷하지만 이전 연산자보다 약간 짧습니다. +=
연산자는 지정된 문자열의 오른쪽에 새 문자열을 추가합니다.
package main
import "fmt"
func main() {
str_1 := "Hello "
str_1 += "World!!"
fmt.Println("Final String:", str_1)
}
출력:
Final String: Hello World!!
다른 방법의 비교
bytes.Buffer
및strings.Builder
메소드는 다른 문자열 연결 메소드보다 훨씬 빠릅니다. 따라서 문자열 연결을 대량으로 수행해야하는 경우에는bytes.Buffer
및strings.Builder
메소드를 선호합니다. 그러나 연결 수가 적을 때는+
또는+=
연산자를 사용할 수 있습니다.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn