나는 언어 책을 프로그래밍 스위프트 통해 이동하고 나는 이것을 완전히 이해하지 않는다 : 당신이 정확히 여기 무슨 일이 일어나고 있는지의 조금 더 설명 할 수 있다면전달 FUNC
//I don't understand 'condition: Int -> Bool' as a parameter, what is that saying?
func hasAnyMatches(list: Int[], condition: Int -> Bool) -> Bool {
//So here i see we are iterating through an array of integers
for item in list {
//I see that condition should return a Bool, but what exactly is being compared here? Is it, 'if item is an Int return true'??
if condition(item) {
return true
}
}
return false
}
//This func I understand
func lessThanTen(number: Int) -> Bool {
return number < 10
}
var numbers = [20, 19, 7, 20]
hasAnyMatches(numbers, lessThanTen)
이 될 것이다 매우 감사. 나는 코멘트에서 대부분의 질문을하므로 읽기가 쉽지만, 혼란스러운 것은 condition: Int -> Bool
을 매개 변수로 사용합니다.
아마도이 설명은 진행 상황을 이해하는 데 도움이됩니다. 신속하게 모든 기능에 유형이 있습니다. 'lessThanTen()'함수의 타입은 "Int Intl, Bool"을 반환합니다.이 함수는 구문 적으로'Int -> Bool'으로 표현됩니다. 다른 유형의 함수를 제공하면 코드가 컴파일되지 않습니다. –