Go で複数行の文字列を書き込む方法
Suraj Joshi
2023年1月30日
Go
の文字列 String
Go の文字列は他の言語とは少し異なります。Go では、文字列
は 1つ以上の文字のシーケンスであり、各文字は UTF-8
エンコーディングの 1つ以上の文字セットで表されます。この機能により、Go の string
は、世界中の多くの言語の混合から形成されたテキストを持つことさえできます。文字列を表すには、テキストを二重引用符 ""
で囲みます。
package main
import "fmt"
func main() {
wish := "We will get victory soon!!"
fmt.Println(wish)
}
出力:
We will get victory soon!!
Go の複数行文字列
Go で SQL、HTML、XML などの大きな文字列を操作する場合は、複数行の文字列を書き込む必要があります。Python のバックグラウンドを持っている人は、複数行の文字列にトリプルの二重引用符が使用されていることを知っているかもしれません。この記事では、Go で複数行の文字列を記述するさまざまな手法について説明します。
ハードコードされた方法
これは問題を解決するための最も単純で素朴なアプローチですが、改行ごとに別々の Println()
ステートメントを並べる必要があるので面倒です。
package main
import "fmt"
func main() {
fmt.Println("Printing ")
fmt.Println("multiline Strings ")
fmt.Println("in Go!!")
}
出力:
Printing
multiline Strings
in Go!!
生の文字列リテラル
バッククォート(\
)文字を使用すると、\n
、\t
などのエスケープシーケンスが文字列リテラルとして扱われるため、複数行の文字列を記述できます。
package main
import "fmt"
func main() {
multi_line := `Hey!! we
are going to
write multiline strings
in Go.
`
fmt.Printf("%s", multi_line)
}
出力:
Hey!! we
are going to
write multiline strings
in Go.
解釈された文字列リテラル
\n
、\t
のようなエスケープ文字を使用したい場合は、二重引用符を使用して Go で複数行の文字列を記述する必要があります。
package main
import "fmt"
func main() {
multi_line := "Hey!! we \n" +
"are going to \n" +
"write multiline strings\n" +
"in Go.\n"
fmt.Printf("%s", multi_line)
}
出力:
Hey!! we
are going to
write multiline strings
in Go.
著者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn