functional programming paradigm - TIL43
함수형 프로그래밍 패러다임
swift는 함수형 프로그래밍 패러다임을 갖고있기 때문에, Swift 함수는 일급객체로 취급하고 그리하여 함수는 변수,상수등에 저장하거나 매개변수를 통해 전달하는 것이 가능하다.
그래서 스위프트함수는 하나의 데이터 타입으로도 표현이 될수 있으며 함수타입을 표현하려면 반환타입을 매개변수 옆에 선언해주면 된다.
이러한 명령형 함수 프로그래밍 패러다임이 되게 헷갈리는 이야기라고 생각했는데 알고보면 c++에서도 흔히 쓰이듯이, 함수내부 매개변수에 또다른 함수를 호출하여 그 결과값이 사용될수 있는점을 생각하면 그리 어렵지 않은 문제이다.
var someFunction: (String, String) ->Void = greeting(to:from:)
이런식으로 someFunction함수 자체에 greeting이라는 함수를 할당하면 되고 만약 해당 변수에 함수를 호출해도 동일한 값이 나온다.
이때 기한것은 전달인자 레이블을 사용하지 않고 우리가 평소 함수를 호출하는것처럼 string에 해당하는 값만 넣어서 사용하는것이 가능하다. 하지만 이러한 방식은 가변 매개변수를 가지는 경우 사용할 수 없다.
댓글
