日9:Swiftuiの100日


関数へのクロージャ、関数の通過、チェックポイント5


https://www.hackingwithswift.com/100/swiftui/9

閉鎖


あなたは迅速に機能をコピーすることができます、そして、彼らは彼らが外部のパラメータ名を失う以外は、オリジナルと同じように働きます.
func greetUser() {
    print("Hi there!")
}

greetUser()

var greetCopy = greetUser
greetCopy()
すべての関数は型を持ちます.これは、戻り値の型と一緒に受け取るパラメータを含みますVoid .
func getUserData(for id: Int) -> String {
    if id == 1989 {
        return "Taylor Swift"
    } else {
        return "Anonymous"
    }
}

let data: (Int) -> String = getUserData
let user = data(1989)
print(user)
定数または変数に割り当てることにより、直接クロージャを作成できます.パラメータを受け入れるか、値を返すクロージャは、これを括弧内で宣言しなければなりません.
let sayHelloName = { (name: String) -> String in
    "Hi \(name)!"
}

チェックポイント5


まとめるsorted() , filter() , map() , チェーンで-呼び出し1、その後、他の、その後、一時的な変数を使用せずに戻るに戻る.
入力は以下の通りです:
let luckyNumbers = [7, 4, 38, 21, 16, 15, 12, 33, 31, 49]
あなたの仕事は
  • 偶数であるどんな数でも除外する
  • 配列を昇順にソートする
  • 「7は幸運な数字です」という形式で文字列にマップします
  • 結果の配列を印刷します
  • 出力は次のようになります.
    7 is a lucky number
    15 is a lucky number
    21 is a lucky number
    31 is a lucky number
    33 is a lucky number
    49 is a lucky number
    

    ソリューション