Loading AI tools
ウィキペディアから
エルビス演算子(エルビスえんざんし、英語: elvis operator)は、いくつかのプログラミング言語にある演算子で、字句構文は ?:
である。三項条件演算子 (? :
) と違い、この連続する2文字で1つの演算子であり、意味的には三項演算子の第二項 (A ? B : C
のB
) が無いもの、というような機能を持っている。
Null合体演算子に似た制御機能を持つが、第一項の扱いが異なる。ただし、エルビス演算子にNull合体演算子の意味と役割を持たせている言語もある。
エルビス演算子を用いて以下のように記述すると、x
には左式exprL
の評価結果が真[注釈 1]と判定される場合にはその結果が、それ以外の場合には右式exprR
の評価結果がセットされる。
x = exprL ?: exprR
これは三項演算子を使って以下のように書くこともできる。
x = exprL ? exprL : exprR
ただし、エルビス演算子ではexprL
が真の場合でも、式が二度評価されることはない。すなわち、以下と同値である。
x = exprL x = x ? x : exprR
エルビス演算子はエルビス・プレスリーの顔文字 (emoticon) に形が似ていることからこう呼ばれる[1][2]。
? :
の第二項を省略可能[5] (June 2009)。?:
は独立したオペレータとして文書化されている[6]。この機能はGroovy 1.5より追加された[7] (December 2007). GroovyはGNU GやPHPと異なり? :
の第二項を省略することは許されておらず、?:
の間にスペースを入れることはできない。throw
式やreturn
式を記述する(val foo = bar() ?: return
)。Perl、Python、JavaScriptなどでは論理和演算 (||
またはor
) が同様の働きをする。すなわち第1項が真値あるいは真値とみなされる値である場合は第2項を評価せずに第1項が論理和式の評価値となり(短絡評価)、第1項が偽値あるいは偽値とみなされる値である場合は第2項が論理和式の評価値となる。
Common Lisp、Scheme では、or
特殊フォームがエルビス演算子に対応するが、エルビス演算子よりも汎用的であり、or
特殊フォームは任意個数の項を受け入れる。第1項から順に真値が見つかるまで項を評価してゆき、真値が見つかったらそれ以降の項の評価せずに、見つかった真値をor
特殊フォームの評価値として評価を終える。
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.