본문 바로가기
iOS

[8일차] Functional 고급 기능

by 디지털노마더 2020. 7. 24.

* Functional 함수 중간 과제 (실습)

 - 총 3문제 -
  1. 성, 이름을 받아서 fullName을 출력하는 함수
  2. 1번에서 만든 함수인데, 파라미터 이름을 제거하고 fullName을 출력하는 함수
  3. 성, 이름을 받아서 fullName을 return 하는 함수

 

온라인 학습할 때는, 반드시 중간에 제시하는 문제를 Pause(일시정지) 버튼을 이용해서

스스로 생각해서 코드를 구현하는 시간을 가져야 한다.

 

 

▹ 함수를 한마디로 정의한다면?

  : 함수는 자판기다.

 

 - 다양한 함수의 형태

 (1) input만 있는 경우
 (2) output만 있는 경우
 (3) input, output 둘 다 있는 경우
 (4) input, output 없이 내부 기능만 수행하는 경우

* 함수 형태 (전체적인 틀)
func functionName(externalName param: ParamType) -> ReturnType {
   // 함수 내용
   return returnValue
}

 

* 함수 파라미터 기본값을 정의하여, 선택적으로 사용

 (1) 기본값 이용

 (2) 파라미터 값을 직접 전달


☆ 함수 고급 기능
 * In-out Parameter
 : 함수 특성상 파라미터는 Constant(변하지 않는) 변수이므로 함수 내부에서 가공하여 return 할 수 없다. 파라미터는 전달되면 함수 내부에서 복사되어 사용된다.

이럴 때, In-out 파라미터를 사용한다.

파라미터 변수는 함수 내부에서 수정이 불가능하다.

 

inout을 이용하여 함수 내부에서 가공하여 반환처리 / 파라미터 전달 시 '&' 붙이기


* 오버로드 : 함수의 이름은 같지만, 파라미터의 개수나 타입을 다르게 사용하는 경우


함수명을 파라미터로 전달하는 경우
 : func functionName(_ function: (paramType))

함수는 반드시 1가지 기능만 담당하도록 코드 짜기 (최소 10줄 이하)
  함수가 길어지면, 작은 단위로 나누어야 한다.

댓글