Go言語
Go言語で文字列を結合する
文字列リテラル(ダブルクォーテーション(")で囲んだ文字列)を結合します。単純に結合するには、+演算子を使用します。
ただし、+演算子で結合すると、結合するたびに文字列オブジェクトが生成されます。
bytes.Bufferを使用すると、文字列はバッファ内に保持され、無駄に文字列オブジェクトが生成されることを防ぎます。
concatenate_string_literal.go
package main
import (
"bytes"
"fmt"
)
func main() {
// Concatenate string literal simply
fmt.Println("Panda " + "is " + "cute.")
// However, string object is generated for every + is used
// If bytes.Buffer is used, new object is not generated
// when string is concatenated
// Here, bytes.Buffer is a variable-sized buffer of bytes.
var buffer bytes.Buffer
buffer.WriteString("P")
buffer.WriteString("a")
buffer.WriteString("n")
buffer.WriteString("d")
buffer.WriteString("a")
fmt.Println(buffer.String())
buffer.WriteString(" ")
buffer.WriteString("i")
buffer.WriteString("s")
buffer.WriteString(" ")
buffer.WriteString("c")
buffer.WriteString("u")
buffer.WriteString("t")
buffer.WriteString("e")
buffer.WriteString(".")
fmt.Println(buffer.String())
}
実行結果
$ go run concatenate_string_literal.go
Panda is cute.
Panda
Panda is cute.