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.