이전 포스팅의 주제인
함수 표기법에서 이어집니다..! 😜
함수 표기법(Function Notation)
[iOS/Swift] 함수를 부르는 방식, 함수 표기법(Function Notation)
아무리 다뤄도 끝이 없는 함수의 늪 😭 그래서, 이번 포스팅은 비교적 간단한 개념을 짚고 넘어가 볼까 합니다. 이후 언급할 함수의 타입, 그리고 1급 객체함수란 개념에 대해 살펴보기 이전에
iosdevlime.tistory.com
함수도 자료형(타입)이 있다!?
함수는 복합 타입(Compound Type)으로서 데이터 내 저장, 활용된다
Swift 문법 관련 포스팅 내용 중,
Type(자료형)에 대해 다룬 적이 있었는데 말입니다..
Type (X) Types (O)
[iOS/Swift] Type (X) Types (O)
이번 포스팅은, 추후 다룰 Enumeration(Enum), function, class, struct 등 현재까지 다뤄 온 내용보다 더욱 복잡하고, 난해한 문법내용을 다루기에 앞서 지속적으로 언급되는 타입(Type)에 대해 조금 더 자세
iosdevlime.tistory.com
해당 게시물에서 가장 중요한 키워드는 바로
'타입(Type)은 데이터의 메모리 저장과 처리방식을 알리는 역할을 담당한다' 라는 내용입니다.
즉, 함수 또한 타입(Type)이라는 큰 범주 내에서
개발자가 임의로 생성하는 복합 타입(Compound Type)이라고 정리할 수 있습니다.
그렇다면, 함수의 타입은 어떻게 선언하고 활용할 수 있을까요?
함수 타입은 어떻게 표기하나요?
- 함수의 타입은 다음과 같이 구성되어 표현됩니다.
- 함수를 직접 만들거나, 함수를 표기하는 방식과는 달리,
- 반드시 Return Type 을 작성해야 합니다!
매개변수가 1개 이상 존재하는 함수타입
- 매개변수가 1개 이상 존재할 경우, 아래와 같은 함수타입을 가집니다.
- 함수의 타입을 확인하기 위해, 함수 표기법 을 통해 선언합니다.
- 함수의 타입은 해당 매개변수의 자료형 타입(Data Type)만을 작성합니다.
- 전달인자(Argument Lable), 파라미터(Parameter Name)의 유무는 고려하지 않습니다.
- 단지, '어떠한 자료형 타입을 매개변수로 가지고 있는가?' 에 대한 응답만 필요합니다.
// 1. 매개변수가 1개 존재하는 함수의 타입
func myNickname(_ name: String) { }
myNickname(_:) // 함수의 타입은? : (String) -> ()
// 2. 매개변수가 2개 이상 존재하는 함수의 타입
func myTeamMate(_ name: String, _ age: Int, class: Character) {}
myTeamMate(_: _: class:) // 함수의 타입은? : (String, Int, Character) -> ()
매개변수와 리턴타입이 존재하는 함수 타입
- 매개변수 이외, '리턴(Return) 타입'이 존재하는 함수는 아래와 같은 타입을 가집니다.
- 리턴타입 또한, 해당 자료형 타입(Data Type)을 작성합니다.
// 매개변수와 리턴타입이 모두 존재할 경우
func calculator(number: Int, _ count: Int) -> Int {
return number * count
}
calculator(number: _:) // 함수의 타입은? : (Int, Int) -> Int
매개변수, 리턴타입이 모두 존재하지 않는 함수 타입
- 매개변수, 리턴타입 모두 존재하지 않는 함수는 빈 괄호()로 타입을 표기합니다.
func helloWorld () {}
helloWorld // 함수의 타입은? : () -> ()
함수관련 포스팅의 끝이 보이기 시작하네요..! 👀
다음 포스팅에서는
Swift 언어에서의 함수의 위계인
1급 객체함수로서의 개념과 특징을 살펴보겠습니다.
'iOS > Swift' 카테고리의 다른 글
[iOS/Swift] 익명 혹은 람다함수는 모두 클로저(Closure)일까? (0) | 2023.01.25 |
---|---|
[iOS/Swift] 1등 시민, 1급 객체함수 (First Class Citizen) (0) | 2023.01.18 |
[iOS/Swift] 함수를 부르는 방식, 함수 표기법(Function Notation) (0) | 2023.01.09 |
[iOS/Swift] 매개변수는 사실 상수였다?! (함수를 호출하는 2가지 방법) (0) | 2022.11.17 |
[iOS/Swift] 매개변수(parameter)와 전달인자(argument) (0) | 2022.11.17 |
댓글