Null条件演算子

Null条件演算子 () とは、第一項がnull（ヌルポインタ: またはヌル参照: ）でない場合に第二項の結果を返し、nullである場合にnullを返す演算子である。nullでないことのチェック処理の記述を回避し、安全にメソッドチェーンやプロパティチェーンを行うために用いられる。メンバーアクセス演算子codice_1は第一項がnullの場合に実行時エラー（例えばJavaの場合NullPointerException）が発生するが、Null条件演算子の場合はnullの検出が自動化され、以降のメソッド呼び出しやフィールド／プロパティの評価を行わずにnullをその結果として返す。Null条件演算子はGroovy、Swift、Ruby、C#、VB.NET、Kotlin、CoffeeScriptなどで実装されている。Null条件演算子は言語によってsafe navigation operator、optional chaining operator、safe call operator、null-conditional operatorなど様々な名称で呼ばれ、共通した名称はないが、英語圏においてはsafe navigation operatorが広く用いられる。
Null条件演算子を使用する主な利点は、nullチェック時に過剰にネストが深くなる問題 () を回避できることである。
例.
特に断りがない限り、コード例における各シンボルは以下の条件であるとする。
C#.
C#は6.0以降でnull条件演算子codice_11、codice_12をサポートする。
string name = articles?[0]?.Author?.Name;
VB.NET.
VB.NETは14以降でnull条件演算子codice_11、codice_14をサポートする。
Dim name As String = articles?(0)?.Author?.Name
Groovy.
safe navigation operator:
def name = article?.author?.name 
Objective-C.
多くの場合で通常のcodice_1演算子をnullを考慮しないで表記することができる。
NSString *name = article.author[0].name;
Swift.
optional chaining operator:
let name = article?.author?.name 
optional subscript operator:
let author = articles?[0].author 
Ruby.
Rubyは2.3.0よりsafe navigation operatorをサポートし、codice_16と表記する。ぼっち演算子 (lonely operator)という名称も与えられている。
name = article&.author&.name 
Kotlin.
safe call operator:
val name = article?.author?.name 
Perl 6.
safe method call:
my $name = $article.?author.?name; 
JavaScript.
ECMAScript 2020以降でオプショナルチェイニング（Optional chaining）演算子をサポートする。
const name = articles?.[0]?.author?.name