Loading AI tools
ウィキペディアから
リテラル・直値[1][2][3](英: literal)は、「文字どおり」「字義どおり」を意味する語で、letter と同じくラテン語の littera(文字)に由来する。数理論理学とコンピュータプログラミング[4]で異なる意味の専門用語として使われる[5]。
リテラルとは、数理論理学において、原子論理式あるいは原子論理式の否定のこと。
基礎リテラルとは、リテラルのうち、変数を含んでいないものを指す。
共通な変数を持たない2つの節に対して、節のそれぞれのリテラルで使って再汎単一化要素をもち、二次元導出系 (英: binary resolvant) を作る場合に導出に使われたリテラル (英: literal resolved upon) と呼ぶ。共通の変数を含まない2つの節で、推論した節の二次元等号調整系 (英: binary paramodulant) を作ったとき、等号調整に使われたリテラル (英: literal paramodulated upon) という。
この節の正確性に疑問が呈されています。 |
この節の文章は日本語として不自然な表現、または文意がつかみづらい状態になっています。 |
コンピュータプログラミング言語においてリテラルは、ソースコード内に値を直接表記したものをいう。言語によってリテラルとして表記できる型の種類や表記方法は異なる。簡略に記述できることが好まれるスクリプティング言語はリテラルの種類が多い傾向にある。リテラル表記ができるかどうかはその型が第一級オブジェクトかどうかを検討する材料にもなるが、必ずしもそうとは限らない[注釈 1]。静的に構文解析が可能なことが多いためシンタックスハイライトではたいてい色分けされる。なお言語によっては(標準規格等で)このリテラルのことを指して「定数」という用語を使っている場合もあるが、「リテラル」という語と使い分ける場合は、「定数」とは「初期化できるだけで、その後は値を変えられない変数」というようなものを指す。
0.1F
のように型を明示するためのサフィックスがあるか。0.1
を .1
と整数部を省略して書けるか。_
などを挟めるか[注釈 2]。'A'
のようにシングルクォートで文字を挟み、エスケープシーケンスが使える場合が多い。ASCIIやUnicodeの1文字を表すものがある。Schemeでは #\A
、#\newline
などのような記法である。SGML などでは λ
、ዀ
などのような記法である。"this is a string literal"
のようにダブルクォートや、シングルクォートで文字列を囲む場合が多いが、一つの言語に複数の記述法があり、特殊な記法が用意される場合もある。その際にはエスケープシーケンスの処理、文字列補間(式展開)の有無、文字列の終わりの解釈などがそれぞれ異なる。/regex/
のようにスラッシュで挟む。「大文字小文字を区別しない」等々のオプションが後ろに付けることができるような仕様であることが多い[要説明]。{1, 2, 3}
のように要素をコンマで区切り、ブレースで囲む。ただしC/C++では、この記法は「初期化子リスト」であり、配列のリテラルではない[注釈 3]。Javaでは「配列初期化子」[7]、C#では「コレクション初期化子」[8]であり、ともに配列のリテラルではない。[1, 2, 3]
のようにブラケットで囲む。[1, 2, 3]
、タプルのリテラル(1, 2, 3)
、セットのリテラル{1, 2, 3}
をサポートするが、配列(数値用のコンパクトなコレクション表現)のリテラルはサポートしない[9]。[| 1; 2; 3 |]
など)[10]およびリストのリテラル([ 1; 2; 3 ]
など)[11]をサポートする。[3]int{1, 2, 3}
のように要素数と型を指定することで配列(固定長のコレクション)のリテラルとなる。[]int{1, 2, 3}
のように要素数を省略するとスライス(可変長のコレクション)のリテラルとなる[12]。{"hoge":1, "piyo":2}
といったように書く。このように書いた場合は、キーが"hoge"で値が1のペアと、キーが"piyo"で値が2のペアの配列を示す。言語によって[要出典]キーと値の間の記号が=>
や->
であることがある[要説明]。(int[]){ 1, 2, 3 }
のように書き、構造体の場合は(struct tm){ .tm_year = 107, .tm_mon = 7, .tm_mday = 24 }
のように書く。null
、nil
、nullptr
false
/true
、#f
/#t
'symbol
、:symbol
#(1.2 3.4 cat)
(Schemeでの例)[1, 8)
(Synopsys IC Validator の PXL 言語での例)下のC#コードにおいて、7
, 3.14
, true
, "hello"
がそれぞれの型のリテラルである。
int x = 7;
double pi = 3.14;
bool flag = true;
string s = "hello";
C#ではリテラルもオブジェクトであり、以下のようにメソッドを呼び出すこともできる。
using System;
Console.WriteLine(7.GetType());
Console.WriteLine(3.14.GetType());
Console.WriteLine(true.GetType());
Console.WriteLine("hello".GetType());
出力結果は以下のようになる(C#の組み込み型は、.NETのCLR型へのエイリアスである)。
System.Int32
System.Double
System.Boolean
System.String
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.