매개변수로 함수 혹은 클로저를 받고, 받았던 녀석을 반환하는 함수
콜렉션에 들어가는 배열, 딕셔너리, 셋에 Sorted, Map, Filter, Reduce 등이 빌트인 되어있다.
함수
getName → 메소드인데 매개변수로서 클러저를 받고 그 클로저를 반환하는데, 반환하면서 형태를 변환하거나 한다.
func getName(_ name: String) -> String {
return "내 이름은 \(name)"
}
// 함수 자체를 매개변수로 넣고
func sayHello( getName: (String) -> String, name: String) -> String {
// 넣은 함수를 반환
return getName(name)
}
let resultOne = sayHello(getName: getName(_:), name: "만쥬")
// 내 이름은 만쥬
콜렉션
배열
let numbers = [3, 7, 4, -2, 9, 6, 10, 1]
// [3, 7, 4, -2, 9, 6, 10, 1]
// Int 를 받아서 String으로 변환해서 리턴
let stringNumbers : [String] = numbers.map { (aNumber: Int) -> String in
return "\(aNumber) !!"
//["3 !!", "7 !!", "4 !!", "-2 !!", "9 !!", "6 !!", "10 !!", "1 !!"]
}
// 짝수
// Int 배열을 가져와서 짝수만 반환
let evenNumbers : [Int] = numbers.filter { aNumber in
return aNumber % 2 == 0
// [4, -2, 6, 10]
}
// 홀수
// Int 배열을 가져와서 홀수만 반환
let oddNumbers : [Int] = numbers.filter { aNumber in
return aNumber % 2 != 0
// [3, 7, 9, 1]
}
반응형