リテラル 【literal】 直値 / 直定数

概要

リテラル(literal)とは、コンピュータプログラムソースコードなどの中に、特定のデータ型を直に記載したもの。また、そのようにコードに書き入れるために定められている書式

表記の仕方によってデータ型を識別できるよう、例えば文字列を表記する際は必ず前後を「"」で括る、といった書式が言語仕様によって定められている。各データ型のリテラルを、型名を先頭につけて「文字列リテラル」「整数リテラル」「日付リテラル」などと呼ぶ。

定数・即値との違い

似た概念に定数constant)があるが、これは変数のようにシンボルに代入したもののうち、宣言後には内容を変更できないものを指す。「const SECONDS_IN_A_DAY=86400;」のSECONDS_IN_A_DAYが定数、86400がリテラルである。

また、アセンブリ言語機械語では、命令が扱う対象となるデータオペランド/被演算子)として、コード中に直に書き込まれた数値のことを即値immediate)という。が格納されたレジスタメモリアドレスではなく、そのものをコード中に書き込んだものを意味する。リテラルのことを即値と呼んだり、即値をリテラルと呼ぶ人もいる。

マジックナンバーとの違い

プログラム中に記載されたリテラルのうち、何らかの意図や意味が込められているが、その手掛かりがどこにもないようなものをマジックナンバーという。

例えば、消費税の計算をうつもりで「price *= 1.08;」のように書くと、1.08というリテラルが何を意味しているのか読み手には伝わりにくい。税率であることを明らかにするため「const CONSUMPTION_TAX_RATE = 1.08;」のように定数を宣言し、「price *= CONSUMPTION_TAX_RATE;」のように記述すれば、何をう処理なのか伝わりやすい。コード中に複数箇所同じが出てくる場合も、宣言部分を直すだけでよく、修正漏れが起きにくい。

(2019.4.4更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる