LoginSignup
1
1

More than 1 year has passed since last update.

初学者の時に疑問だったこと! guard let x = y else { return }編

Posted at

今回の内容

  • 学習を始めてまだ1ヶ月くらいの時によく理解出来なかったguard let x = y else { return }について、自分なりに解説していきます。

コードと簡単解説

* いきなりですがguard let x = y else { return }について、自分が学習する中で得た答えは、未計画なnilが引き起こすエラーを回避する為に使用しています。

例コード1

  • 下記のコードの場合,変数ynilで無い時にprint(x)を働かすことができます。

  • 実際に下記のコードを動かすと、print(x)は働きません。

    • 理由は、 変数yを宣言する時にString?で宣言をしています。
    • var y:String?の様に?を書いて宣言すると、値にはnilが入ってしまいます。
    • なのでprint(x)を働かすにはguard let x = y else { return }の処理より前に、変数ynilでは無い状態にしないといけません。

    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)  
}

終わり

ご指摘、ご質問などありましたら、コメントまでお願い致します。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1