Go で複数行の文字列を書き込む方法

Suraj Joshi 2023年1月30日
  1. Go の文字列 String
  2. Go の複数行文字列
Go で複数行の文字列を書き込む方法

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 avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

関連記事 - Go String