この記事は Swift Advent Calendar 2017 の 3 日目の記事です。 本記事では、よく提案されるけれど採用されなかった仕様とその理由、そして、そこから読み取れる Swift の設計方針を紹介します。 主なソースはapple/swift-evolution 内の Commonly Rejected Changes とswift-evolution のメーリングリストのログです。 リジェクトされた提案 Array の範囲外にアクセスした際に nil を返す 前提 Swift では配列(Array)の範囲外に添え字でアクセスすると実行時エラーになります。 リジェクト理由 理由は 2 点挙げられています。 1. 範囲外アクセスはロジックエラーである 「subscript は入力に前提条件があり、それが満たされていない場合の回復処理を動的にさせるべきではない」という考えのようで