iOS/개념
[Swift] 함수 타입이란? (Function Types)
안경 쓴 귀니
2022. 3. 19. 19:19
반응형
함수 타입(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: 문법편
반응형