「誰でも爆速で理解できる！Go のルーンリテラル10個のエスケープシーケンスまとめ」

## はじめに

Go 言語では、単一の Unicode コードポイントを表す整数定数を **ルーンリテラル**（rune literal）として扱います。ルーンリテラルはシングルクォートで囲まれた 1 文字またはエスケープシーケンスで記述し、内部的には `int32`（別名 `rune`）型として扱われます。  
本記事では、公式仕様書[「Rune literals」](https://tip.golang.org/ref/spec#Rune_literals)に基づき、代表的なエスケープシーケンスの一覧と、それらを使った出力例を紹介します。

## 一覧表

以下の表は、Go のルーンリテラルおよび文字列リテラルで利用できる主要なエスケープシーケンスをまとめたものです。各行には対応する Unicode コードポイントと英語名、そして簡単な説明を付しています。  
（ルーンリテラルでは `\'` が有効、`\"` は文字列リテラルでのみ有効です）

| リテラル | Unicode      | 英語名                      | 説明                                                          |
|:--------:|:------------:|:---------------------------|:-------------------------------------------------------------|
| `\a`     | U+0007       | alert or bell              | 警告音（ベル）を鳴らす                                        |
| `\b`     | U+0008       | backspace                  | カーソルを 1 文字分戻して削除する                            |
| `\f`     | U+000C       | form feed                  | 改頁コード（多くの端末では空白扱い）                          |
| `\n`     | U+000A       | line feed or newline       | 改行                                                        |
| `\r`     | U+000D       | carriage return            | 行頭へ戻る                                                  |
| `\t`     | U+0009       | horizontal tab             | 水平タブ                                                    |
| `\v`     | U+000B       | vertical tab               | 垂直タブ（多くの端末では空白扱い）                          |
| `\\`     | U+005C       | backslash                  | バックスラッシュ文字 `\` を出力                              |
| `\'`     | U+0027       | single quote               | シングルクォート文字 `'` を出力（ルーンリテラル内で有効）    |
| `\"`     | U+0022       | double quote               | ダブルクォート文字 `"` を出力（文字列リテラル内で有効）      |

## サンプルコード

以下のサンプルプログラムは、`fmt.Print` で各エスケープシーケンスの挙動を確認する例です。出力時に制御文字がどのように作用するかご覧ください。

```go
package main

import "fmt"

func main() {
    // \a : 警告音（ベル）
    fmt.Print("alert (\\a): \a\n")

    // \b : バックスペース
    fmt.Print("backspace (\\b): ABC\bD\n")    // ⇒ 「ABD」

    // \f : フォームフィード（多くの端末では空白扱い）
    fmt.Print("form feed (\\f): Hello\fWorld\n")

    // \n : 改行
    fmt.Print("newline (\\n): Line1\nLine2\n")

    // \r : キャリッジリターン
    fmt.Print("carriage return (\\r): 12345\rAB\n") // ⇒ 「AB345」

    // \t : 水平タブ
    fmt.Print("horizontal tab (\\t): Col1\tCol2\n")

    // \v : 垂直タブ（多くの端末では空白扱い）
    fmt.Print("vertical tab (\\v): Hello\vWorld\n")

    // \\ : バックスラッシュ文字
    fmt.Print("backslash (\\\\): \\\n")

    // \' : シングルクォート文字（ルーンリテラル内で有効）
    fmt.Print("single quote (\\'): '\n")

    // \" : ダブルクォート文字（文字列リテラル内で有効）
    fmt.Print("double quote (\\\"): \"\n")
}
```

## 実行結果

上記コードを実行した際の端末出力例です。  
（制御文字の挙動は利用環境によって異なる場合があります）

```bash
alert (\a): 
backspace (\b): ABD
form feed (\f): Hello
                     World
newline (\n): Line1
Line2
ABrriage return (\r): 12345
horizontal tab (\t): Col1       Col2
vertical tab (\v): Hello
                        World
backslash (\\): \
single quote (\'): '
double quote (\"): "
```

## まとめ

- ルーンリテラルはシングルクォートで囲み、単一の Unicode コードポイントを表現する。  
- 代表的なエスケープシーケンスは公式仕様書[「Rune literals」](https://tip.golang.org/ref/spec#Rune_literals)で定義されている。  
- コード例と実行結果を通じて、ベル音、改行、タブ、バックスペースなどの制御文字の挙動を確認できる。  

これらを活用することで、Go におけるテキスト出力やバイナリデータ生成の制御がより正確かつ直感的に行えます。