「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

Null合体演算子

pointこの用語のポイント

point演算子だよ

point値がNULLだったら違う値を入れたいときに使うよ

point見た目は「??」(ハテナマークが2つ)を使うプログラミング言語が多いよ

スポンサーリンク

簡単に書くよ

Null合体演算子(読:ヌルガッタイエンザンシ、ナルガッタイエンザンシ 英:null coalescing operator)とは

プログラミングで出てくる演算子のひとつ
であり

「その値はNull(「何もないよー」を表す単語)かな~?Nullじゃなかったら、その値をそのまま使うよ~。Nullだったら、こっちの値を代わりに使うよ~」を意味する演算子
です。
演算子の見た目としては

「??」(ハテナマークが2つ)
を採用しているプログラミング言語が多いです。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として

変数
演算子
NULL


について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

変数は「プログラミング言語における『値を入れておく箱』」です。
処理の途中で値を入れたり、逆に取り出したりできます。

Null合体演算子

演算子は「どんな演算をするか表す記号」です。
「+」「-」「*(×)」「/(÷)」をはじめ、なんか いろいろ あります。

Null合体演算子2

NULLは「何もないよー」を表す単語です。
数学の世界における「0(ゼロ)」みたいなものですね。
宇宙の話で言えば、ブラックホールみたいなものです。

Null合体演算子3

以上を踏まえて

変数がNullだったら他の値を入れるときに使う演算子

が「Null合体演算子」です。
演算子の見た目としては「??」ハテナマークが2つ)を採用しているプログラミング言語が多いです。
Perlの場合は「//」スラッシュが2つ)だったり、例外もありますけどね。

例えばPHPでNull合体演算子を使うときは、以下のように書きます。

$ret = $hoge ?? "Nullだよ";

「$hoge」の中身がNullではない場合は「$hoge」の値が「$ret」に入ります。
Nullだった場合は「Nullだよ」という文章が「$ret」に入ります。

つまり、この内容は

if($hoge != null){
    $ret = $hoge;
}else{
    $ret = "Nullだよ";
}


と書くのと同じです。

実際には

if($hoge != null){

ではなく

if(!isset($hoge)){

と書くのが正しいですけどね。
PHPを知らない人でもイメージしやすいように、あえて

if($hoge != null){

と書いてみました。
実際にPHPでプログラミングする方は「isset()」を使うようにしてください。

話を戻します。

$ret = $hoge ?? "Nullだよ";



if($hoge != null){
    $ret = $hoge;
}else{
    $ret = "Nullだよ";
}


と同じです。

あと、ついでなので書くと「三項演算子」というのを使って

$ret = isset($hoge) ? $hoge : "Nullだよ";

と書いても同じ結果になります。

つまり、Null合体演算子なんてなくても何とかなるのです。
実際にNull合体演算子がないプログラミング言語もあります。

それでは、なんで有るかというと「書くのが楽だから」です。

プログラミングをやっているとですね。

1.値がNullか判定
2.Nullだったら別の値を入れる


をやりたい機会が腐るほどあります。
その処理を1行でサクっと書けるようにするための演算子がNull合体演算子です。

個人的には「Null合体演算子」よりも「Null置換演算子」の方が分かりやすいと思うのですけどね。
最初に作った人が「合体」にしたので、仕方ないですな。


image piyo2

一言でまとめるよ

まぁ「Null合体演算子」って単語が出てきたら「値がNull(「何もないよー」を表す単語)か判定して、Nullだったら違う値を入れるときに使う演算子なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像006
書籍画像004

おまけ

■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
エンジニア育成現場の「失敗」集めてみた。 42の失敗事例で学ぶマネジメントのうまい進めかた
わかばちゃんとつくって、壊して、直して学ぶ NewSQL入門
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本