エルビス演算子
読み:えるびすえんざんし
外語:elvis operator
幾つかの
プログラミング言語
に存在する二項演算子。言語により若干異なるが、第一項と第二項のどちらかを選択する働きをする。
目次
概要
特徴
名前の由来
C/C++/PHP
null比較
概要
三項演算子
である x ? y : z の第二項を削ったものと解釈できるが、?: は2文字続けて書くと一つの演算子となり、間に空白を入れてはならない。
Perl
や
Swift
などには
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合体演算子と呼ばれることが多い。
再検索