オプショナル

Swift

失敗可能イニシャライザの使い方

構造体やクラスのインスタンスを生成する時に、必ずしも生成可能とは限らない場合もあります。設定されているべきパラメータが設定されていなかったり、、そうして初期化に失敗する可能性のあるイニシャライザも定義することができます。これを失敗可能イニシ...
Swift

オプショナル値を取り除くcompactMapの使い方

オプショナル型の要素を持つ配列でも、結果としては、nilが含まれていないような通常の配列が欲しい場合もあります。そんな時には、compactMapメソッドを使います。let data: = data.compactMap { $0 } //...
Swift

オプショナルチェーンのやり方

オプショナル型を使うことでNull安全なコードを書くことができますが、オプショナル型をネストさせると、コードの量が増えたり煩雑になりがちです。ですが、そこはSwift。そうした場合のショートカットも用意されています。例を見てみましょう。st...
Swift

独自の型をオプショナル型にする

IntやStringなど標準で組み込まれている型以外に、独自に定義した型をオプショナル型にすることもできます。やり方は、変数(定数)の宣言や初期化時に、作った型の後ろに?を付けます。ユーザーがアバターも登録できるとして、アバターの設定部分を...
Swift

guard-letの使い方

オプショナル型の値を取り出すのに、guard-letを使う方法もあります。オプショナル型の変数(定数)が値を持つかどうかを判定し、持つなら使って行くという感じです。func wakeup(at time: Int?) { guard let...
Swift

オプショナル型の値の取り出し(if-let)

オプショナル型の値を取り出すのに、if-let構文を使うこともできます。安全に値を取り出すことができる方法です。var op: Int? = 3if let unwrapped = op { print("値が存在します: \(unwrap...
Swift

オプショナル型の値を開示(??演算子)

オプショナル型の値を開示するには、いくつかやり方があります。ここでは、??演算子を使います。var op: Int? = 1let res = op ?? 0 // 1 -> 通常の値var op2: Int? = nillet res2 ...
Swift

オプショナル型の値の強制開示

オプショナル型の値は、通常の値とnilのどちらも持ちうるというものですが、使うにあたって最終的にどちらなのか知らないことには使えません(コンパイルエラーになります)。そのための操作が「開示(unwrap)」です。一つのやり方は、変数(定数)...
Swift

オプショナルと通常の型は別

Swiftでは、Int型やString型など様々な型を、nilを持ちうるオプショナル型にすることができます。その時、型名は末尾に?が付いたものになります。IntならInt?型で、StringならString?型です。まぎらわしいかもしれませ...
Swift

オプショナル値を使ってみる

オプショナル値は値がnil、不在も許容しますが、値が不在とはどういうことなのでしょうか?そんなオプショナル値をいじってみましょう。例えば、チャットやメッセージアプリだったり、、、ユーザー登録の部分を考えてみます。その時に、年齢や職業など必須...