본문 바로가기
iOS/Swift

[iOS/Swift] 함수의 타입(Type)과 형태를 알아보자!

by iosdevlime 2023. 1. 10.

이전 포스팅의 주제인

함수 표기법에서 이어집니다..! 😜

 

 

 

함수 표기법(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 을 작성해야 합니다!

Parameters, Return 타입 모두 필요해!
Parameters, Return 타입 모두 필요해!

 

 

 

 

매개변수가 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급 객체함수로서의 개념과 특징을 살펴보겠습니다.

댓글