文字リテラル
ソースコード内に べた書きした文字だよ
「'a'」みたいな形で出てくるよ
2文字以上書くとエラーになると思うよ
簡単に書くよ
文字リテラル(読:モジリテラル 英:character literal)とは
人間語で書いたプログラムの元ネタ(ソースコード)の中に直接べた書きした文字
('a'みたいに文字が1つだけある状態)のこと
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・文字
・文字列
・ソースコード
・リテラル
・文字列リテラル
について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
文字は「あ」とか「い」とかです。
コンピュータの世界においては、記号としての文字を指します。
文字列は複数の文字を集めたものです。
「眠い」とか「お腹空いた」とかの単語や文章を指します。
「文字」と「文字列」の違いは意識してあげてください。
コンピュータの世界において、文字と文字列は区別されます。
コンピュータの世界、特にプログラミング関連では「あ」や「い」のような「記号としての文字」と「眠い」や「お腹空いた」のような「言葉としての文字」を区別します。
そして
・記号としての文字 → 文字
・言葉としての文字 → 文字列
と呼び分けるのです。
ソースコードは「人間語で書いたプログラムの元ネタ」です。
プログラムを作って動かすまでの一般的な流れは
1.人間語でプログラムの元ネタを書く
2.元ネタを人間語から機械語に翻訳する
3.翻訳された指示に従って、コンピュータさんが お仕事する
です。
コンピュータさんは人間語が分かりません。
人間様はコンピュータさんの言葉が分かりません。
プログラムは人間様が作るものです。
そこで最初は人間様が分かる言葉でプログラムを作ります。
コンピュータさんに対する「あれをやれ」「これをやれ」な命令を人間語で書くのです。
次に人間語で書いたプログラムの元ネタをコンピュータさんが分かる言葉に翻訳します。
実際に お仕事をするのは、コンピュータさんですからね。
コンピュータさんが分かる言葉に変換する必要があるのです。
コンピュータさんが分かる言葉に翻訳したので、コンピュータさんは命令の内容を理解できます。
指示に従って、お仕事をしてくれるでしょう。
かなり簡略化した説明ですけどね。
これがプログラムを作るときの流れです。
この話で登場した
人間語で書いたプログラムの元ネタ
を「ソースコード」と言います。
リテラルは「ソースコードの中に直接 書きこんである文字とか数字とか」です。
「リテラル」という用語には馴染みがなくても、プログラミングをするときには絶対に使っているはずです。
例えば、以下の処理が あったとしましょう。
name = "ピヨ太";
age = 18;
この処理は
1.変数「name」に文字列「ピヨ太」を入れる
2.変数「age」に数字「18」を入れる
処理です。
この処理に登場した
・文字列「ピヨ太」
・数字「18」
がリテラルです。
name = "ピヨ太";
age = 18;
もったいぶって書きましたが、たいしたことは書いていませんね。
「リテラル」と聞くとなんかカッコいい響きですが、実際は ただの べた書きした文字とか数字です。
※今回はプログラミングの話で説明していますが、データベースの話とかでも出てくることがあります。その場合でも考え方は同じです。「(SQL文の中とかに)べた書きした文字とか数字とか」がリテラルです。
文字列リテラルは「ソースコードの中に直接 書きこんである文字列」です。
文字通り、文字列のリテラルですね。
例えば、そうですね。
以下の処理が あったとしましょう。
name = "ピヨ太";
age = 18;
この処理は
1.変数「name」に文字列「ピヨ太」を入れる
2.変数「age」に数字「18」を入れる
処理です。
この処理に登場した
・文字列「ピヨ太」
が文字列リテラルです。
プログラミング言語の種類にもよりますが、文字列リテラルは「"(ダブルクォーテーション)」や「'(シングルクォーテーション)」で囲まれているのが一般的です。
例えば
"ピヨ太"
や
'ピヨ太'
のような形で登場します。
以上を踏まえて
ソースコードの中に直接 書きこんである文字
が「文字リテラル」です。
文字通り、文字のリテラルですね。
文字リテラルは
1文字だけOK
です。
2文字以上だと(多分)エラーになります。
それが文字列リテラルとの違いです。
例えば、そうですね。
とあるプログラミング言語「ピヨピヨ言語」では
1.「"(ダブルクォーテーション)」で囲むと文字列リテラルになるよ
2.「'(シングルクォーテーション)」で囲むと文字リテラルになるよ
というルールが あったとしましょう。
ピヨ太君はピヨピヨ言語を使って
moji_retsu = "aa";
moji = 'a';
という処理を書きました。
これはエラーになりません。
OKです。
ピヨ子さんはピヨピヨ言語を使って
moji_retsu = "aa";
moji = 'aa';
という処理を書きました。
これはエラーになります。
何故なら「'」で囲んだ文字リテラルに入れられるのは1文字の「文字」だからです。
2文字以上の「文字列」は入れられません。
プログラミング言語によっては文字リテラルがない(すべて文字列リテラルになる)場合もありますけどね。
いずれにせよ「文字」と「文字列」は区別できるように しておいてください。
一言でまとめるよ
まぁ「文字リテラル」って単語が出てきたら「ソースコード
(人間語で書いたプログラムの元ネタ)に べた書きした文字
('a'みたいに文字が1つだけある状態)なんだな~」と お考えください。
おまけ
■訳してみるよ
「文字」は日本語ですね。
「literal(リテラル)」の意味は「文字の」とか「文字通りの」とかです。
何となく くっつけると
文字、文字通りの
となります。
■検索してみる?






