[iOS] Closure 1



Closure


暴露する.
括弧{ }で囲まれた実行可能コードブロック.
任意の定数または変数の参照.
切り取って保存できます.
SWIFTは、この取得に関連するすべてのメモリを
自分で見てやる.
パラメータを受信できます.
戻り値が存在する可能性がある点では、関数と同じです.

なぜデジタル露出を使うのですか?


エンクロージャを使用する最も日本的な理由の一つは
保存機能です.
エンクロージャでは、いくつかの機能を変数として実行できます.
どこかに貯蔵できます.returnおよび
ロッカーは別の場所に保管できます.
露出は大きく3種類に分けられます.

🌵 Global Function


「Named Closure」とも呼ばれます.
キーワードfuncを使用して名前を付けます.
「関数」と呼ぶのはこれに相当します.

🌵 ネスト関数[ネスト機能]


関数の内部で使用する関数を再定義します.
内部関数は非表示です.
宣言された関数の内部でのみ呼び出されます.
// example1

func calcDecrement(forDecrement total: Int) -> () -> Int {
    var overallDecrement = 0
    
    func decrementer() -> Int {
        overallDecrement -= total
        return overallDecrement
    }
    return decrementer
}

let decrem = calcDecrement(forDecrement: 30)
print(decrem()) // -30

🌵 Closure expression


Unnamed Closureとも呼ばれます.
通常はCloserと呼ばれます.

{(parameters) -> return type in
	// statements
}
モジュールは1レベルのオブジェクトなので.
変数に割り当てることができます.
// example2

let closureValue = { (name: String) in print(name) }

closureValue("Eugenie") // Eugenie
関数のパラメータとして渡すことができます.
// example3

func closureOperation(closure: () -> Void) {
	// Some code here
}
一級オブジェクト
▶▼変数やデータ構造に含めることができます.
▶πはパラメータで伝達できます.
▶▼戻り値として使用できます.
▼▼配るときに使う名前に関係なく、固有の違いがある.
▼▼番組料は動的に配分できる.

Closure Parameter


エンクロージャでは、パラメータは{ }に記載されています.
エンクロージャでパラメータを受け入れるには、次の手順に従います.
下記に記入します.
// example4

let favorite = { (color: String) in
	print("My favorite color is \(color)!")
}

favorite("blue") // My favorite color is blue!
inは時計が始まることを教えてくれました.
コール時
関数とは異なり、変数ラベルは使用されません.
📚 Reference
Swiftオフ
Swift Closer(1/3)-Closerを征服して、あなたは誰ですか?
SWIFT:基本構文[1モジュールデフォルト-クローズ]