반응형
함수 타입(Function Types)이란?
변수에 함수를 대입하면 그 변수는 일반적으로 문자열, 정수 등과는 전혀 다른 타입이 되는데
이를 함수 타입(Function Types)이라고 한다.
함수 타입의 형태
함수 타입은 (인자 타입 1, 인자 타입 2,...) -> 반환 타입 형태로 표시한다.
예시1. 매개변수 1개와 반환 타입이 있는 함수
func boo(age: Int) -> String {
return "\(age)"
}
위 함수를 함수 타입으로 변환 시
(Int) -> String
사용 방법
let b1: (Int) -> String = boo
let b2 = boo(age:)
b1(3) // return "3"
b2(4) // return "4"
예시 2. 매개변수 2개와 반환 타입이 있는 함수
func boo(age: Int, name: String) -> String {
return "\(age), \(name)"
}
위 함수를 함수타입으로 변환 시
(Int, String) -> String
사용 방법
let b3: (Int, String) -> String = boo
let b4 = boo(age:name:)
b3(3, "eunsu") // return "3, eunsu"
b4(4, "eunju") // return "4, eunju"
예시 3. 매개변수 1개가 있고, 반환 타입이 없는 함수
func boo(age: Int) {
print(age)
}
위 함수를 함수타입으로 변환 시
(Int) -> ()
(Int) -> Void
사용 방법
let b5: (Int) -> Void = boo
let b6: (Int) -> () = boo
let b7 = boo(age:)
b5(3) // "3"
b6(4) // "4"
b7(5) // "5"
※ 참고사항
반환 타입이 없는 경우, 반환 타입 생략은 불가능하며 Void 또는 ()를 사용
예시 4. 매개변수가 없고, 반환 타입이 있는 경우
func boo() -> String {
return "boo"
}
위 함수를 함수타입으로 변환 시
() -> String
사용 방법
let b8: () -> String = boo
// let b9 = boo() // return "boo". 해당 경우는 사용 불가. 함수 자체를 대입하는 것이 아니라, 함수의 결과물을 b9라는 상수에 할당하는 대입 연산임
b8()
※ 참고사항
매개 변수가 없는 경우, 생략은 불가능하며 ()를 사용
참고사항 정리
1. 함수 타입 사용 시 매개변수가 없는 경우는()를 사용하며, 반환 타입이 없는 경우는 ()와 Void 모두 사용 가능
2. 상수 b2, b7 의 경우 함수 식별자가 동일하기 때문에 주의
출처: 꼼꼼한 재은씨의 Swift: 문법편
반응형
'iOS > 개념' 카테고리의 다른 글
[Swift] 스위프트 변수와 상수 (0) | 2022.04.02 |
---|---|
[Swift] 스위프트 문법 특성 (0) | 2022.04.01 |
[Swift] 프로퍼티 (Properties) 종류 (저장 or 연산 or 타입) (0) | 2022.03.08 |
[Swift] SwiftUI Stack (VStack, HStack, ZStack) (0) | 2022.02.23 |
[Swift] 기본 데이터 타입 (Character, String, Int, UInt, Float, Double, Bool, Any, AnyObject) (0) | 2020.11.07 |