LoginSignup
2

More than 5 years have passed since last update.

Swift の Optional 型の扱い方メモ

Last updated at Posted at 2019-03-25

Swift のオプショナル型について、自分なりにまとめました。

サンプルコードでは、下記のようなクラス定義のインスタンス user を使った例を記しています。 Swift4 で試しているはずです。

class User {
    var name: String?
}

? をつけて扱う

user.name?.count

これだと count も Int? になるので、その後も延々と Optional として扱う必要がある

! をつけて扱う

user.name!

! は開示指定と呼ぶ。

万が一 name にデータが入っていないい時は実行時エラーが出る覚悟の時。

?? でデフォルトの値を指定してあつかう

user.name ?? "Unknown name"

?? は nil 合体演算子と呼ぶ。

if / while / guard 文で Optional じゃない変数に入れて扱う

guard let name = user.name else {
    // return とか break とか throw とか
}

name.count 

if と while では、そのスコープ内で変数を利用できる。オプショナル束縛と呼ぶ。

guard 文では、後続の文でも変数を利用できる。kotlin の let も嫌いじゃないけど、顧客の求めていたもの感はこの guard 文のほうが大きい。 guard 便利

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
2