LoginSignup
0
0

More than 1 year has passed since last update.

基本を意識してコーディンングをする

Last updated at Posted at 2021-05-10

1.基本を意識してコーディンングをする

書籍を参考にする

調べた内容をメモに残す
3件以上 10件以上

  • 1. クロージャ
    関数閉包 関数のスコープにある変数を自分が定義された環境に閉じ込めるためのデータ構造

定義方法
{ (引数名: 型) -> 戻り値の型 in
// クロージャの実行時に実行される文を書く
// 必要に応じてreturn文で戻り値を返却する
}

  • 2. オプショナル型 バインディング
    オプショナル型 Optional型 値があるか空のいずれかを表す型

オプショナルバインディング
if-let文
値の有無による分岐
if let 定数名 = Optional型の値 {
Wrapped型の値が存在する場合に実行される文
} else {
存在しない場合
}

  • 3. enum 全てのcaseを配列で取得
    CaseIterableプロトコル (要素列挙のプロトコル)

enum 列挙型名: String, CaseIterable {
case ケース名
var text: String {
switch self {
case .ケース名
return "米国"
}
}

取得する
let zzz = xxx.allCases.map { $0.rawValue }
// テキストを取得
xxx(rawValue: zzw[要素番号]?.text

  • 4. for文 for in where

正しい
for in where {}

誤り
for in {
if なんとか {
}
}
この書き方だとエラーが発生する

  • 5. 配列 ソート
    xxx.sort(by: {$0.name < $1.name}) 昇順での並び替え
    xxx.sort(by: {$0.name > $1.name}) 降順での並び替え
    sort(by:) 配列の中身を変更する
    sorted(by:) 配列の中身を変更しないで、ソートした新しい配列を返す

  • 6. タプル
    順序付けされた値の集合体のこと
    異なる型の値をひとつの変数、定数で扱えるようになる。ただし、値の追加や削除、または繰り返し処理はできない。関数呼び出しの戻り値に使える。
    値のみ宣言 var 変数名 = (値1, 値2, 値3)
    型付宣言 var 変数名: (Int, String, Bool) = (…
    ラベル付き宣言 var 変数名: (count: 123, alpha: "abc", …
    型付/ラベル付き宣言 var 変数名 = (count: Int, alpha: String, isFlag: Bool) = (count: 123, alpha: "abc", …

  • 7. 変数
    var global = "global" // グローバル変数 全てのクラスから参照可能 システム全体でひとつじゃないとダメ
    class myclass {
    public var a = "a" // インスタンス変数 インスタンス化すると他クラスから参照可能
    var b = "b" // インスタンス変数 インスタンス化すると他クラスから参照可能
    private var c = "c" // インスタンス変数 他クラスから参照不可
    static var d = "d" // クラス変数 他クラスからmyClass.d で参照可能
    func method() {
    var e = "e" // ローカル変数 メソッド内でのみ有効
    }
    }

  • 8. delegate
    8-5.カスタムセル上のボタンを押して画面遷移をしたい
    と同じ

  • 9. 命名規則
    アッパーキャメル
    クラス名、構造体名、列挙型名、プロトコル名
    スネークケース大文字
    グローバル定数、クラス定数
    キャメルケース
    変数名、関数名、ラベル名
    元の名前の先頭に「_」を付ける オプショナルバインディングでアンラップした変数
    ファイル名
    基本的に、クラス名、構造体名、列挙型名、プロトコル名
    例外的に、extensionに限り、クラス名 + 拡張内容 またそのファイルはExtensionディレクトリに配置する
    メソッド名 どのような処理をするか理解できるようにする

  • 10. 通知 オブザーバパターン
    Swiftにおけるイベント通知のパターン
    ・デリゲートパターン
    ・クロージャ
    ・オブザーバパターン

オブザーバパターン
実装方法
① 通知を受け取るオブジェクトにNotification型の値を引数に持つメソッドを実装する
② NotificationCenterクラスに通知を受け取るオブジェクト指向を登録する
③ NotificationCenterクラスに通知を投稿する

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