- 함수 (Function)
- func <함수이름> (<파라미터 이름>: <파라미터 자료형>)-> <리턴형> { ...... }
- 반환 타입
- 파라메터 뒤에 "->" 로 반환타입임을 의미할 수 있다
- 반환 값이 없을 경우 반환 타입을 포함하지 않음
- 여러 개의 반환 값 정의 시 ","로 구분되는 복수 입력 반환 타입을 가질 수 있음
- -> (반환이름 : 반환타입, 반환이름 : 반환타입)
- 반환 타입의 이름은 꼭 정의 하지 않아도 됨
- 반환값이 정의 되어있지 않은 함수는 void 타입의 특수값을 반환, ()로 쓰여질 수 있는 빈 튜플(Tuple) 요소를 갖고 있지 않은 튜플
- 파라메터
- 함수 이름 다음 괄호 안에 ","로 구분되는 복수 입력 파라메터를 가질 수 있음
- 파라메터를 받지 않는 다고 하여도 함수 이름 뒤에 "()"를 포함해야 함
- 함수 파라메터는 함수 내에서만 사용 가능 (지역 파라메터 라고도 함)
- 함수 인수가 어떤 목적인지 지시하기 위해 함수 사용자에게 파라메터 이름을 제공 할 수 있음, 이를 외부 파라메터 이름(External Parameter Names)라고 하며, 지역 파라메터 이름 앞에 공백으로 구분해서 작성하면 된다.
- func testFunction(EPName aName:String) {...}
지역 파라메터 이름이 적절하다 싶으면 파라메터 이름 앞에 "#"을 붙이게 되면 외부 파라메터 이름으로도 사용 가능(2.0에서 삭제)- 파라메터들은 기본값을 가질 수 있음
- func testFunction(aName:String = "UNNOWN") {...}
- 가변 개수 파라메터, "..."키워드를 사용하여 특정 타입의 값을 0개 이상 받을 수 있음
- func testFunction(nums:double...) {...}, 입력 시 : testFunction(1, 2, 3, 4)
- 내부에는 double[] 타입의 배열로 만들어 짐
- 함수는 한개의 가변 개수 파라메터를 가질 수 있음
- 파라메터 목록의 맨 마지막에 배치
- 기본 값을 가지는 파라메터 맨 마지막에 두어야 함
- 함수의 파라메터들은 기본적으로 상수들 임, 가변 파라메터를 정의 하려면 "var" 키워드를 접두어로 사용
- func testFunction(var aName:String = "UNNOWN") {...}
- 가변 파라메터는 함수 호출 동안만 유지
- In-Out 파라메터
- 함수 내에서만 변경되면 원래의 값을 대체함
- "inout" 키워드를 접두어로 사용
- 주소연산자 "&" 붙여 파라메터로 넘겨준다 (C/C++ 다뤄 봤음 알 듯)
- 파라메터로 넘길 수 있는 값은 인수(argument)뿐, 상수나 문자값은 파라메터로 넘길 수 없음
- 기본 값을 가질 수 없으며, 가변 개수 및 var, let으로 표시 또는 사용할 수 없음
- 파라메터 이름 앞에 공백과 "_"를 사용하게 되면 함수 사용 시 파라메터 이름을 생략 할 수 있다 (Omitting External Parameter Names, 2.0에 추가)
- Optional Tuple Return Types, 2.0에 추가
- 함수 타입
- 중첩 함수
'Swift > Swift Basic (2.0Base)' 카테고리의 다른 글
Optionals (0) | 2014.12.30 |
---|---|
튜플(Tuples) (0) | 2014.12.24 |
로그 출력 (0) | 2014.12.23 |
변수와 상수 (0) | 2014.12.23 |
Swift특징 (0) | 2014.12.23 |