고차함수

작성일

고차함수

  • 매개변수로 함수 혹은 클로저를 받고 받았던 녀석을 반환하는 함수
  • 콜렉션에 들어가는 배열, 딕셔너리, 셋에 Sorted, Map, Filter, Reduce 등이 빌트인 되어있다.
func getMyWords(_ firstWord: String, _ lastWord: String) -> String {
  return firstWord + " " + lastWord
}

func getMyWordsTwice(_ firstWord: String, _ lastWord: String) -> String {
  return firstWrod + " " + lastWord + " / 한번 더 말할께요! / " + firstWord + " " + lasWord
}

// 함수 자체를 매개변수로 넣고
func saySometing(getWords: (_ firstWord: String, _ lastWord: String) -> String,
      firstInput: String, lastInput: String) -> String{
        //넣은 함수를 반환
        return getWords(firstInput, lastInput)
}

let resultOne = saySomething(getWords: getMyWords, firstInput: "안녕하세요!", lastInput: "최재권 입니다")
print("resultOne: \(resultOne)")

let resultTwo = saySomething(getWords: getMyWordsTwice, firstInput: "안녕하세요!", lastInput: "최재권 입니다")
print("resultTwo: \(resultTwo)")

출력결과

resultOne: 안녕하세요! 최재권 입니다
resultTow: 안녕하세요! 최재권 입니다 / 한번 더 말할께요! / 안녕하세요! 최재권 입니다