0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Posted at

はじめに

Go 言語では、単一の Unicode コードポイントを表す整数定数を ルーンリテラル(rune literal)として扱います。ルーンリテラルはシングルクォートで囲まれた 1 文字またはエスケープシーケンスで記述し、内部的には int32(別名 rune)型として扱われます。
本記事では、公式仕様書「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 で各エスケープシーケンスの挙動を確認する例です。出力時に制御文字がどのように作用するかご覧ください。

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")
}

実行結果

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

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」で定義されている。
  • コード例と実行結果を通じて、ベル音、改行、タブ、バックスペースなどの制御文字の挙動を確認できる。

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?