[SWIFT] Lassen Sie uns die Schließung verstehen!

Dieses Mal habe ich etwas über das Schließen gelernt, also werde ich es ausgeben.

Was ist eine Schließung?

*** Das Schließen ist ein wiederverwendbarer Teil der Verarbeitung. *** *** Funktionen sind eine Art Schließung, daher haben sie viele häufige Verwendungszwecke. Um die Funktion verwenden zu können, musste sie mit dem Schlüsselwort "func" definiert werden. Es gibt jedoch eine Möglichkeit, den Abschluss als Abschlussausdruck zu definieren.

*** Klicken Sie hier, um die Funktion zu überprüfen !! *** Lassen Sie uns die Funktion verstehen! (Https://qiita.com/syunta061689/items/77e8aa76070a734f1b4d)

Die grundlegende Definitionsmethode lautet wie folgt.

qiita.rbvar


{(Argumentname 1: Typ,Argumentname 2: Typ...) ->Geben Sie den Typ ein
Anweisung ausgeführt, wenn der Abschluss ausgeführt wird
Geben Sie den Rückgabewert bei Bedarf mit einer return-Anweisung zurück
}

Schauen wir uns als nächstes ein einfaches Beispiel an.

qiita.rbvar


let double = {(x:Int) -> Int in

return x * 5

}
double(5) //25

Die Beschreibung des Arguments und des Rückgabetyps ist dieselbe wie für die Funktion, jedoch werden der Rückgabetyp und die Anweisung durch das Schlüsselwort in getrennt. Im obigen Beispiel wird ein Abschluss definiert und ausgeführt, der ein Argument vom Typ Int verwendet und einen Rückgabewert vom Typ Int zurückgibt, der mit 5 multipliziert wird.

Funktion als Verschluss

qiita.rbvar


func rectangleArea(height:Int,width:Int) -> Int {
 let result = height*width
 return result //Geben Sie das Berechnungsergebnis zurück

}

let area = rectangleArea(height: 5,width: 6) //30

Im obigen Beispiel wird der Typ der Variablen eindeutig als Int-> Int bestimmt, und die Ergebnisrückgabe des Berechnungsergebnisses wird ausgeführt und der Rückgabewert wird zurückgegeben.

Array-Typ als Abschluss

Das folgende Muster gibt ein Array oder ein Wörterbuch zurück:

*** Klicken Sie hier, um den Array-Typ zu überprüfen !! *** Lassen Sie uns den Array-Typ verstehen! (Https://qiita.com/syunta061689/items/89e549f4a3254f635ce1)

Schauen wir uns ein einfaches Beispiel an.

qiita.rbvar


func a(num: [Int] -> [Int] { //Gibt ein Array vom Typ Int zurück
    print num
}
 
func b(strings: [String: Int]) -> [String: Int]{ //Ermöglicht den Empfang von Wörterbüchern mit Schlüsseln vom Typ String und Werten vom Typ Int.
    print strings
}

let test = a(num:0,1,2) 
let test1 = b(String:[Schimpanse:0,Gorilla:1]) 

print(a)//[0,1,2]
print(b) //[Schimpanse:0,Gorilla:1]

Schließlich

Dieses Mal habe ich die Grundlagen der Schließung zusammengefasst. Der diesmal beschriebene Inhalt ist jedoch die Grundlage der Grundlagen, der Abschluss ist tief und es gibt einen komplizierten Schreibstil, so dass ich ihn auch in Zukunft fest verstehen werde.

Recommended Posts

Lassen Sie uns die Schließung verstehen!
Lassen Sie uns die Funktion verstehen!
Lassen Sie uns die if-Anweisung verstehen!
Lassen Sie uns die Wachaussage verstehen!
Lassen Sie uns die For-In-Anweisung verstehen!
Lassen Sie uns die switch-Anweisung verstehen!
Lassen Sie uns den Array (Element) Typ verstehen!
Lassen Sie uns den optionalen (verpackten) Typ verstehen!
Docker verstehen
Verstehe DI
[Swift vs Java] Lassen Sie uns statisch und endgültig verstehen