9일 차: SwiftUI의 100일

클로저, 함수에 함수 전달, 체크포인트 5



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

폐쇄



Swift에서 함수를 복사할 수 있으며 외부 매개변수 이름이 손실된다는 점을 제외하면 원본과 동일하게 작동합니다.

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)


상수 또는 변수에 할당하여 클로저를 직접 만들 수 있습니다. 매개변수를 받거나 값을 반환하는 클로저는 중괄호 안에 this를 선언하고 그 뒤에 in 키워드가 와야 합니다.

let sayHelloName = { (name: String) -> String in
    "Hi \(name)!"
}


체크포인트 5


sorted() , filter() , map() 를 체인으로 묶습니다. 임시 변수를 사용하지 않고 하나를 호출한 다음 다른 하나를 호출한 다음 다른 하나를 연이어 호출합니다.

귀하의 의견은 다음과 같습니다.

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
    


    해결책

    좋은 웹페이지 즐겨찾기