水夫と戯れて

Appleの開発言語Swiftのことを書く。公開されている範囲内で書いています。文章に「?」が含まれているところはよく理解していないところ。

エクステンション(Extentions)

目次>

Obj-Cのカテゴリのような感じで機能拡張ができる。

エクステンションの文法

Computed プロパティ

イニシャライザ
メソッド
インスタンスメソッドの変更
サブスクリプト
ネスト化タイプ

オプショナルチェーン(Optional Chaining)

目次>

チェーン内のどれかがnilの場合にfalseにするなどして使う

アンラップの代わりとしてのオプショナルチェーン

オプショナルチェーンのモデルクラスを定義

オプショナルチェーンを通してプロパティを呼ぶ

オプショナルチェーンを通してメソッドを呼ぶ

オプショナルチェーンを通してサブスクリプトを呼ぶ

チェーンの複数レベルのリンク

オプショナルな返り値を伴ったメソッドのチェーン

Optional(オプショナル)

目次>

型のあとに?がつく

Stringのあとに?をつけてString? Stringまたはnil という意味 Swiftでは基本的にnilは含まれない。nilが含まれるのを許可する場合は?をつける

オプション型を非オプション型にする

オプション型を非オプション型にすることをアンラップ(Unwrap)するという

オプショナルバインディング

if letを使う

アンラップと同時にテストする場合は if let index = xxxxxXxxxx() { print } として変数に入れてやる




オプショナルチェーン

オプション型を指定した場合、デフォルトの初期化はnilになる。

オプション型からもとの形にアンラップする

ImplicitlyUnwrappedOptional 自動的にOptionalをUnwrapする

非オプショナルタイプ

nilであってはいけない。 var myString: String = "文字列" var theObject: MyClass = MyClass()

下記のようにしてはいけない。コンパイルエラーが発生 var myString: String = nil var theObject: MyClass = nil

オプショナルリターンタイプ

返り値がnilであっても良い

func function002() -> Int?{
        
        return nil
    }