1. ホーム
  2. swift

[解決済み] Swift: ガードレット vs if let

2022-04-22 03:40:53

質問

SwiftのOptionalについて読んでいて、以下のような例を見ました。 if let は、Optional が値を保持しているかどうかをチェックし、保持している場合はラップされていない値で何かを行うために使用されます。

しかし、Swift 2.0では、キーワード guard let が多く使われています。しかし if let はSwift 2.0から削除されたのか、それともまだ使用可能なのか。

を含むプログラムを変更する必要があります。 if let から guard let ?

解決方法は?

if letguard let は、似ているが異なる目的を持つ。

の場合、quot;else"です。 guard は現在のスコープを抜ける必要があります。一般に、それは return またはプログラムを中断します。 guard は、関数の残りの部分をネストすることなく、早期に復帰させるために使用されます。

if let はそのスコープを入れ子にし、特別なことを要求しない。それは return を使用するかどうか。

一般に、もし if-let ブロックが関数の残りの部分となるか、あるいはその else 節には return またはアボートさせる場合は guard の代わりに これはしばしば(少なくとも私の経験では)、迷ったときは guard がベターな答えであることが多い。しかし if let が適切です。