Apple docs によると、オプションのチェーンは次のとおりです。
オプションが非 nil の場合、プロパティ、メソッド、または添え字を呼び出したいオプション値の後に疑問符 (?) を置くことによって、オプションの連鎖を指定します。...オプションがnilの場合、オプションのチェーンは正常に失敗します...
これについての私の解釈は、次のような構造はオプションの連鎖であるということです:
someMasterObject.possiblyNilHandler?.handleTheSituation()
...そして、上記の行は、ハンドラーが nil でない場合は handleTheSituation メソッドを呼び出し、ハンドラーが nil の場合は正常に失敗します (行はスキップされます)。
ただし、オプションの連鎖について私が目にするほとんどすべての例は、次のように「if let」構造を使用しています。
if let handler = someMasterObject.possiblyNilHandler{
handler.handleTheSituation()
}
実際、私がネット上で見つけたドキュメントと例では、オプションのチェーンに関連して「if let」構造を多用しているため、それがオプションのチェーンであるかのように見えます。
しかし、私の最初の例はオプションの連鎖のサポートされた使用であり、if let 構造はオプションの連鎖を使用する (または密接に結びついている) 別の構造であると仮定するのは正しいでしょうか?