なえT備忘録

何の参考にもならないかもしれませんが、いつかは参考になるようにします

Swift 型、スコープ、式など

入門書1冊では賄いきれなかったので、SWIFT実践入門をちょびちょびよんでます

なんとなく理解してるけど、名前やちゃんとした仕様がわかってない決め事、定義等を補完しています

 

Swift自体の仕様やdelegateとかは大体理解できるけど、UIKitの各クラスの取扱い、プロパティやメソッドの仕様は量が多すぎてなかなか覚えられない

使うものから順に覚えていけばいいやは思っているけど、さすがにチートシートか逆引き辞書ないときちい

 

 

 

 

 

 ●型アノーテーション

 変数や定数宣言時の型名を表す場所 :Int など

 ●型の確認方法

 type(of:式)

 

 ●ローカルスコープ

 関数や制御構文によって定義されるスコープ メソッド/クロージャの中身 など

 ●グローバルスコープ

 どの関数、型宣言にも含まれないスコープ クラスの中にぽつんと置かれてるようなもの

 ⇨ 同じスコープ中に同じ名前を複数存在させることはできないが、違うスコープだと存在させられる。

 名前が被っている場合、近いスコープの変数/定数が参照される。

 ローカルとグローバルで被ったら、ローカルが優先される

 

 ●式の種類

    変数や定数の値を返却する式: 変数名や定数名のみで構成され、式の評価時に変数や定数に入っている値を返す。

    リテラル式:              1や"abc" といった、値を直接プログラムに表記する書式 値に対する型アノテーションないし型推論が必要

                            配列リテラル、辞書リテラルnilリテラルのように、デフォルトの型を持たないリテラルもある

    let a = 1       こっちがリテラル

    let b = a + 1   こっちが変数や定数の値を返却する式

 

 

    メンバー式:              型のメンバーにアクセスする式

    型のメンバーとは、型の値や型自身に備えついた変数、定数、関数、型などのこと。(属性)

    値に紐づく変数や定数のことをプロパティといい、型に紐づく関数のことをメソッドと呼ぶ。

    メンバー式は、型に備えついたプロパティ/メソッドを使用するための式。式の値は、プロパティやメソッドの返す値。

    多くの方にはプロパティやメソッドが定義されている。

    let a = "Hello Worlld!"

    a.count // 13                      これがプロパティ

    a.starts(with: "Hello") // true    これがメソッド

 

    クロージャ式: 処理をまとめて呼出可能にした式。入力値を引数と言い、出力値を戻り値という。

    処理を即席的に定義して他の処理に渡す際に使う。べんり

    {引数 in 戻り値を返す式}

    代表的な書き方は下記の通り 配列の要素を変換する(map_:)メソッドに、各要素を2倍にするクロージャ式を渡している。

 

    let original = [1, 2, 3]

    let doubled = original.map({value in value * 2}) //入力値originalをvalueに代入して2倍してる

    doubled //[2, 4, 6]

 

 

 ●Any型

 

    Any型 全ての方が暗黙的に準拠してる特別なプロトコル、Any型の変数や定数にはどのような方も代入できるため、代入する値の方が決まっていないときに利用

 let string :Any = "abc"

 let int: Any = 123

Any型は、値を生成するものでなく、他の型の値をAny型として扱う。

しかし、オプショナル同様もとの型では可能だった操作ができなくなる(四則演算など)ので、可能な限りAny型への代入はやめよう。あるいは必要に応じて型キャストを行う。