3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Swift】初心者向けnilの扱い

Last updated at Posted at 2018-02-16

メソッドの引数がオプショナルの場合

AとBを受けとりA+Bをして返すメソッドを考えます。

メソッドの定義自体はA?とB?となっており、nilが入って来る可能性があるので
どちらかの引数にnilが入ってきた場合はエラーとして呼び出し元に返してやる必要性がある。

ここでXcodeの補完機能に流れを任せビルドしてしまうと強制アンラップが発生してしまい
アプリが落ちてしまうことになる。

落ちてしまう例

func hoge(A: Int?, B: Int?) -> Int? {
    return A! + B!
}

上記の書き方だとreturn A! + B!nilが入っていた場合に落ちてしまいます。

落ちない例

nilが入ってきた場合にguard letで早期にエラーとしてnilreturnします。
よくその変数を使うタイミングでnilチェックをしている人がいる。アホくさ。

func hoge(A: Int?, B: Int?) -> Int? {
    guard let _A = A else { return nil }
    guard let _B = B else { return nil }
    return _A + _B
}

まとめ

nilは早期にチェックするべき!!!

3
0
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
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?