プログラミングで使用される「リテラル」というキーワードを理解するには、「リテラル」そのものの意味を調べるより、「リテラル」の使い方を見たほうが、理解しやすいかもしれません。というのも、「リテラル」という言葉は、この言葉単体で使われるよりも、「○○リテラル」というように、別の言葉とともに使われることが多いからです。
このページでは、「リテラル」の意味や、使い方の例を紹介します。
「リテラル」の意味は2つある。1つは「値そのもの」。もう一つは「書き方」。
プログラミングにおいて「リテラル」とは、2つのの使われ方をします。
1つ目は、変数や定数に格納する「値そのもの」という意味で使われる場合。
2つ目は、その値の「書き方(表記の仕方)」を意味する場合です。
使用頻度として多いのは、「書き方」の意味で使われる場合ですが、まずは、1つ目の「値そのもの」という使われ方をする場合を見てみましょう。
リテラルという言葉が、「値そのもの」という意味で使われる場合
ブログラム本などで「リテラル」という言葉そのものを説明されるとき、圧倒的に多いのが、「値そのもの」という説明です。
具体的にいうと、「下記の例では、『見えイズム』や『8』、『12』が、リテラルに該当します」というような説明の仕方がされます。
let my_name = "**見えイズム**";
let my_number_1 = 8
let my_number_2 = 12;
「『見えイズム』や『8』、『12』が『リテラル』だ」といわれても、良くわからない…。私がそうでした。
私は、「変数とかに代入された何か」なんだな…とざっくり理解することにしました。
そして「リテラル」という言葉が、どのように使われているかを調べたときに、「リテラル」という言葉の存在を理解することができたのです。リテラルはプログラム言語の書籍において、「書き方(表記の仕方)」を説明するときに使われていることが、圧倒的に多いのです。
リテラルという言葉が、「書き方(表記の仕方)」の意味で使われている場合
「リテラル」という言葉が、「書き方(表記の仕方)」の意味でよく使われるのは、プログラムの書き方を、一言で説明するのが難しい場合です。「リテラル」の前に別の言葉を追加して、「○○リテラル」という複合語にして使われます。
具体的には、次のような会話のときです。
Aさん「このスクリプトを書くの、面倒だなあ」
Bさん「その場合は○○リテラルで書くと楽だよ」
この会話で登場する「○○リテラル」の「○○」の部分は、「文字列」「テンプレート」「オブジェクト」など、データ型と呼ばれるキーワードが入りますが、ここではデータ型に関する説明は割愛します。○○の部分は、具体的な書き方の名前によってかわると覚えておけばよいでしょう。
例えば、先の例で出た「見えイズム」と「8」、「12」を使って「見えイズム が好きな数字は 8 と12です。2つの数字を足すと20になります」という出力をしたかったとします。
このときのスクリプトは、下記のようになるかもしれません。
let my_name = "**見えイズム**";
let my_number_1 = 8
let my_number_2 = 12;
console.log(my_name + 'が好きな数字は' + my_number_1 + 'と' + my_number_2+ 'です。2つの数字を足すと' + (my_number_1 + my_number_2) + 'になります');
加算演算子「+」の記号がたくさんあって、書くのが面倒くさいし、+の位置を間違えそうですよね。このときにBさんが、「そんなときは、テンプレートリテラルで書くと良いよ」と教えてくれて、次のようなスクリプトの書き方を教えてくれたとします。
let my_name = "**見えイズム**";
let my_number_1 = 8
let my_number_2 = 12;
console.log(`${my_name}が好きな数字は${my_number_1}と${my_number_2}です。2つの数字を足すと${my_number_1 + my_number_2}になります`);
このとき
`${my_name}が好きな数字は${my_number_1}と${my_number_2}です。2つの数字を足すと${my_number_1 + my_number_2}になります`
の部分が、「テンプレートリテラル」に該当しますが、「テンプレートリテラル」そのものを解説するには、一言では足りません。しかし、教えてもらった方は、具体的な書き方はすぐにはわからなくても、なんとなく、「『テンプレートリテラル』という書き方があるのか」ということは、イメージできそうですよね。つまり、相手に「○○リテラル」という書き方の存在を、想起させることが、「リテラル」という言葉の存在意義なのですね。
他にも、こんなふうに使われます。
Aさん「このスクリプト、何かエラーが出て動かないよ」
Bさん「それは、この部分の変数を○○リテラルで書いていないからエラーになるんだよ」
下記も、具体的な書き方を想起させる使い方です。ただしこちらは、想像させたあと、不便だから使うべきではないという指摘をしています。
Aさん「この配列には、どのような値を初期設定すればいいかな。要素数だけ3つと決まってるけど、それぞれの要素の中身は空なんだ」
Bさん「要素の中身が空なら、直接値を指定する配列リテラルではなく、要素数だけを定義する、コンストラクタで定義するといいよ」
いずれの場合でも「○○リテラル」という言葉を使うことで、相手に、具体的な書き方の存在を、暗に示しています。
暗に示すことで、その言葉そのものを聞いたときに、何か別の意味が背景にあると想像できる。お互いが会話において別の説明を少なくできる、会話を省エネするときに使われるのが、「リテラル」なのです。