「文字列リテラル」と「文字リテラル」の違い
スポンサーリンク
予備知識
| 用語 | 意味 |
|---|---|
| 文字 | 「あ」とか「い」とかの「記号としての文字」のこと |
| 文字列 | 文字の集まり。「眠い」とか「お腹空いた」とかの「単語や文章としての文字」のこと |
| ソースコード | 人間語で書いたプログラムの元ネタ |
| リテラル | ソースコードの中に直接べた書きした文字とか数字とかのこと |
文字と文字列の違いを補足しておきます。
それぞれ
文字:記号としての文字
文字列:言葉としての文字
です。

いまいちピンと来ない人は
「文字」が集まったのが「文字列」
と解釈してください。
例えば
ピヨ太
という単語が あったとしましょう。
「ピ」と「ヨ」と「太」が文字です。
「ピヨ太」という単語が「文字列」になります。

それぞれの用語の意味
| 用語 | 意味 |
|---|---|
| 文字列リテラル | ソースコードの中に直接べた書きした文字列 |
| 文字リテラル | ソースコードの中に直接べた書きした文字 |
似ているところ
どちらもリテラルです。
ソースコードの中に べた書きした値です。
違うところ
そのまんまですが、文字列か文字かの違いです。
例えば、とあるプログラミング言語「ピヨピヨ言語」では
1.「"(ダブルクォーテーション)」で囲むと文字列リテラルになるよ
2.「'(シングルクォーテーション)」で囲むと文字リテラルになるよ
というルールが あったとしましょう。

ピヨ太君はピヨピヨ言語を使って
moji_retsu = "aa";
moji = 'a';
という処理を書きました。
これはエラーになりません。
OKです。

ピヨ子さんはピヨピヨ言語を使って
moji_retsu = "aa";
moji = 'aa';
という処理を書きました。
これはエラーになります。
何故なら「'」で囲んだ文字リテラルに入れられるのは1文字の「文字」だからです。
2文字以上の「文字列」は入れられません。

備考
今回は話を単純化するために「ソースコードの中に」と表現しましたが「リテラル」という用語はデータベースの話とかでも出てきます。
その場合も基本的な考え方は同じです。
「(SQL文の中とかに)べた書きした〇〇」が「〇〇リテラル」です。






