今回の内容
- 学習を始めてまだ1ヶ月くらいの時によく理解出来なかった
guard let x = y else { return }について、自分なりに解説していきます。
コードと簡単解説
* いきなりですがguard let x = y else { return }について、自分が学習する中で得た答えは、未計画なnilが引き起こすエラーを回避する為に使用しています。
例コード1
-
下記のコードの場合,
変数yがnilで無い時にprint(x)を働かすことができます。 -
実際に下記のコードを動かすと、
print(x)は働きません。 -
理由は、
変数yを宣言する時にString?で宣言をしています。 -
var y:String?の様に?を書いて宣言すると、値にはnilが入ってしまいます。 -
なので
print(x)を働かすにはguard let x = y else { return }の処理より前に、変数yがnilでは無い状態にしないといけません。
var y:String?
override func viewDidLoad() {
super.viewDidLoad()
guard let x = y else { return }
print(x)
}
例コード2
- 下記のコードの場合,
変数yが宣言時にnilを値として持っています。 - ですが、
guard let x = y else { return }の処理の前で、"Not nil"を変数yに入れています。 - よって
変数yの値がnilでは無い状態になったのでprint(x)を働かすことができます。
var y:String?
override func viewDidLoad() {
super.viewDidLoad()
y = "Not nil"
guard let x = y else { return }
print(x)
}
終わり
ご指摘、ご質問などありましたら、コメントまでお願い致します。