カテゴリ: Go言語 更新日: 2025/10/13

Go言語の文字列の基本!文字列リテラルとエスケープシーケンスを初心者向けに解説

Go言語の文字列の基本!文字列リテラル・エスケープシーケンスの使い方
Go言語の文字列の基本!文字列リテラル・エスケープシーケンスの使い方

先生と生徒の会話形式で理解しよう

生徒

「Go言語で文字列ってどうやって書くんですか?」

先生

「Go言語では文字列を表すときに文字列リテラルを使います。リテラルとは、そのままソースコードに書いた文字列のことです。」

生徒

「文字列リテラルって具体的にはどんなものなんですか?」

先生

「例えば、"Hello"`こんにちは`のようにダブルクオーテーションやバッククオートで囲んで書きます。違いについてはこれから詳しく説明しますよ。」

1. Go言語の文字列リテラルとは?

1. Go言語の文字列リテラルとは?
1. Go言語の文字列リテラルとは?

Go言語の文字列リテラルには、主に2種類あります。

  • ダブルクオーテーション("")で囲む方法:改行を含めず、エスケープシーケンスを利用できる。
  • バッククオート(``)で囲む方法:複数行をそのまま表現でき、エスケープシーケンスを解釈しない。

簡単に言うと、"..."は「プログラム的に特別な書き方ができる文字列」、`...`は「そのまま書いた通りの文字列」と覚えると分かりやすいです。


package main
import "fmt"

func main() {
    str1 := "Hello\nWorld"
    str2 := `Hello
World`
    fmt.Println(str1)
    fmt.Println(str2)
}

Hello
World
Hello
World

この例では、ダブルクオーテーションの方は\nが改行として解釈されますが、バッククオートの方はそのまま改行が保持されています。

2. エスケープシーケンスとは?

2. エスケープシーケンスとは?
2. エスケープシーケンスとは?

エスケープシーケンスとは、文字列の中で特殊な意味を持つ書き方のことです。普段そのまま書けない文字(改行やタブ、クオーテーション記号など)を表現するために使います。

Go言語でよく使うエスケープシーケンスを表にまとめました。

エスケープシーケンス 意味
\n 改行 "Hello\nWorld"
\t タブ(空白を広めに空ける) "A\tB"
\" ダブルクオーテーションそのもの "She said \"Hi\""
\\ バックスラッシュそのもの "C:\\path"

package main
import "fmt"

func main() {
    fmt.Println("Hello\nWorld")       // 改行
    fmt.Println("A\tB")              // タブ
    fmt.Println("She said \"Hi\"")   // ダブルクオーテーション
    fmt.Println("C:\\path")          // バックスラッシュ
}

Hello
World
A   B
She said "Hi"
C:\path

このように、普通に書けない文字もエスケープシーケンスを使うことで表現できます。

3. ダブルクオーテーションとバッククオートの使い分け

3. ダブルクオーテーションとバッククオートの使い分け
3. ダブルクオーテーションとバッククオートの使い分け

初心者の方は「どっちを使えばいいの?」と迷うかもしれません。目安は次の通りです。

  • プログラムで改行やタブを入れたいとき → ダブルクオーテーションを使う
  • 複数行のテキストをそのまま書きたいとき → バッククオートを使う

例えば、SQL文や長いHTMLのテンプレートなどをそのまま文字列として書きたい場合には、バッククオートを使うと便利です。


sql := `
SELECT id, name
FROM users
WHERE age > 20;
`
fmt.Println(sql)

SELECT id, name
FROM users
WHERE age > 20;

このように、改行やインデントを含んだ文字列をそのまま書けるのはバッククオートならではの特徴です。

4. 文字列リテラルとエスケープシーケンスの注意点

4. 文字列リテラルとエスケープシーケンスの注意点
4. 文字列リテラルとエスケープシーケンスの注意点

Go言語で文字列を扱うときに、次の点に注意しておきましょう。

  • バッククオートではエスケープシーケンスは無効\nを書いてもただの文字として扱われます。
  • ダブルクオーテーションでは必ずエスケープが必要:特殊な記号をそのまま書くとエラーになるので注意しましょう。
  • 文字列は変更できない:Goの文字列はイミュータブル(変更不可)です。途中の文字を直接書き換えることはできません。

もし文字列を加工したいときは、新しい文字列を作るというイメージを持つと理解しやすいです。

関連記事:
カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!