【Go言語】複数行の改行が入った文字列を記述する方法とバッククオートを文字列に含む場合

Go言語で改行を含んだ複数行の文字列を変数に代入する方法をご説明します。

 

Go言語で複数行の改行が入った文字列を記述する方法

Go言語ではraw文字列リテラルを使用して複数行の文字列を書くことができます。raw文字列リテラルは、二重引用符や単一引用符の代わりにバッククォート(`)で囲まれ、複数の行にまたがることができます。

以下がバッククオートで複数行の捩れ越を書く場合のサンプルです。

package main

import "fmt"

func main() {
    message := `これは
複数行の
文字列です。`
    fmt.Println(message)
}

raw文字列リテラルは改行やその他の空白文字を含めてすべての文字をそのまま保持します。

つまり人間が見たままの文字列として変数に代入されます。

バッククオートやダブルクォートを文字列に入れたい場合

ダブルクォートやバッククォートをraw文字列リテラル内に含める必要がある場合は、エスケープシーケンス \"` を使用します。

この例では、message変数には、ダブルクォートやバッククォートを含む複数行の文字列が含まれています。バッククォートは、バッククォート内でエスケープできないため、文字列の連結(+)を使用して連結されます。


package main

import "fmt"

func main() {
    message := `彼女は「ダブルクォートを含むメッセージです。」と言いました。
彼は` + "`" + `バッククォートの方が好きだ。` + "`" + `
    fmt.Println(message)
}

 

まとめ

raw文字列リテラルは、文字列内に特殊文字をエスケープする必要がなく、改行やその他の空白文字を含めることができるため、Goで複数行の文字列を簡単に書くことができます。