Null条件演算子

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動
条件演算子 > Null条件演算子

Null条件演算子とは、第一項がヌルポインタ (null pointer)でない場合に第二項の結果を返し、そうでない場合にnullを返す演算子である。nullでないことのチェックを回避し、メソッドチェーンやプロパティチェーンを行うために用いられる。.オペレータは第一項がnullの場合エラー(特にJavaの場合NullPointerException)が発生するが、Null条件演算子の場合はnullが検出されて以降のメソッドやフィールドの評価を行わずにnullをその結果として返す。Null条件演算子はGroovy,[1] Swift,[2] Ruby,[3] C#,[4] Kotlin,[5] CoffeeScriptなどで実装されている。Null条件演算子は言語によってsafe navigation operatoroptional chaining operatorsafe call operatornull-conditional operatorなど様々な名称で呼ばれ共通した名称はないが、英語圏においてはsafe navigation operatorが広く用いられる。

Null条件演算子を使用する主な利点はnullチェック時に過剰にネストが深くなる問題(pyramid of doom英語版)を回避できることである。

[編集]

C#[編集]

C#は6.0以降でnull条件演算子?.?[]をサポートする:[6]

string name = articles?[0].author?.name;

Groovy[編集]

safe navigation operator:[7]

def name = article?.author?.name

Objective-C[編集]

多くの場合で通常の.演算子をnullを考慮しないで表記することができる。

NSString *name = article.author[0].name;

Swift[編集]

optional chaining operator:[8]

let name = article?.author?.name

optional subscript operator:

let author = articles?[0].author

Ruby[編集]

Rubyは2.3.0よりsafe navigation operatorをサポートし、&.と表記する。ぼっち演算子[9] (lonely operator[10])という名称も与えられている。

name = article&.author&.name

Kotlin[編集]

safe call operator:[11]

val name = article?.author?.name

Perl 6[編集]

safe method call:[12]

my $name = $article.?author.?name;

関連項目[編集]

参考[編集]

[脚注の使い方]
  1. ^ 6.1. Safe navigation operator”. 2016年1月28日閲覧。
  2. ^ Optional Chaining”. 2016年1月28日閲覧。
  3. ^ Ruby 2.3.0 Released”. 2016年1月28日閲覧。
  4. ^ Null-conditional Operators (C# and Visual Basic)”. 2016年1月28日閲覧。
  5. ^ Null Safety”. 2016年1月28日閲覧。
  6. ^ Null-conditional Operators (C# and Visual Basic)”. 2016年1月28日閲覧。
  7. ^ 6.1. Safe navigation operator”. 2016年1月28日閲覧。
  8. ^ Optional Chaining”. 2016年1月28日閲覧。
  9. ^ NEWS for Ruby 2.3.0” (日本語). 2017年2月26日閲覧。
  10. ^ Ruby 2.3.0 Released” (英語). 2016年1月28日閲覧。
  11. ^ Null Safety”. 2016年1月28日閲覧。
  12. ^ Perl 6 Operators”. 2016年6月28日閲覧。