[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モジュールデフォルト-クローズ]
Reference
この問題について([iOS] Closure 1), 我々は、より多くの情報をここで見つけました https://velog.io/@eugenie8/iOS-Closure-1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol