エルビス演算子
読み:えるびすえんざんし
外語:elvis operator

 幾つかのプログラミング言語に存在する二項演算子。言語により若干異なるが、第一項と第二項のどちらかを選択する働きをする。
目次

概要
 三項演算子である x ? y : z の第二項を削ったものと解釈できるが、?: は2文字続けて書くと一つの演算子となり、間に空白を入れてはならない。
 PerlSwiftなどにはnull合体演算子という似たような演算子が存在する。

特徴

名前の由来
 名前の由来は、エルビス・プレスリーから。
 演算子 ?: がエルビス・プレスリーの顔文字に似ているから、とされる。プレスリーは 5:-) と表現され、このうち5がリーゼント、:が目、-が鼻、)が口を意味することになる。
 エルビス演算子 ?: は、つまり?がリーゼントで、:が目ということになる。

C/C++/PHP
 GCC 2.95.3以降の独自拡張C/C++やPHP 5.3以降では、三項演算子の第二項を省略することが可能になった。
 x ?: y
 このように書かれた場合は、次のように書かれた場合と等価の動きをする。
 x ? x : y
 つまり、第一項が真値(true)なら第一項が、さもなくば第二項が選択される演算子として振る舞う。

null比較
 エルビス演算子は本来は第一項の真偽を判断するものだったが、Kotlinなど第一項をnullと比較しnull合体演算子として用いる実装がある。
 x ?: y
 第一項xがnullかどうかを比較し、nullでなければ第一項xを、nullであれば第二項yを選択する。
 Swiftの場合、同様の演算子はnil結合演算子 ?? である。nil結合演算子は他のプログラミング言語ではnull合体演算子と呼ばれることが多い。

再検索