본문 바로가기
iOS/Swift

[iOS/Swift] 함수를 부르는 방식, 함수 표기법(Function Notation)

by iosdevlime 2023. 1. 9.

아무리 다뤄도 끝이 없는 함수의 늪 😭

그래서, 이번 포스팅은 비교적 간단한 개념을 짚고 넘어가 볼까 합니다.

 

이후 언급할 함수의 타입

그리고 1급 객체함수란 개념에 대해 살펴보기 이전에

 

특정 함수란 객체의 고유한 이름을 붙여주는, 

다시 말해 명명하는 '함수 표기법'에 대해 알아보도록 하겠습니다.

 

(해당 내용은 다음 포스팅과 이어집니다)

 

 

 


 

 

 

함수 표기법, Function Notation

함수를 지칭하고, 활용하기 위한 표기방식(일종의 Naming)

 

표기법, 다시 말해 특정 객체를 지칭하는 방식

함수 또한 동일하게 적용될 수 있습니다.

 

이번 포스팅에서 주요하게 다룰 함수의 자료형(타입) 을 학습하기에 앞서

함수를 어떤 방식으로 이름짓고, 부를 수 있는지 이해할 필요가 있습니다.

 

 

 

 

프로그래밍에서의 표기법이란?

  • 표기법이란, 규칙에 따른 명명법(Naming)과 같습니다.
    • 예를 들면, Swift의 명명 규칙인 [CamelCase]가 대표적입니다.
더보기

Swift의 명명규칙 (Apple 가이드라인 기준)

 

  • Camel Case
    • 마치 '낙타'를 닮았다 하여 붙여진 명명규칙
    • 단어가 합쳐지는 부분마다 맨 처음 글자를 '대문자'로 표기하는 방식
  • Lower Camel Case
    • 가장 첫 앞글자만 소문자로, 이후 합쳐지는 부분마다 대문자로 표현
    • 함수(메서드),  인스턴스(변수, 상수)를 사용할 때 명명함
// 함수 혹은 메서드
func multiple (a: Int, b:Int) -> Int {
    // some code...
}

// 인스턴스 (상수 혹은 변수)
var myName: String = "Lime"
let yourAge: Int = 30

 

 

  • Upper Camel Case 
    • 가장 첫 글자부터 대문자로, 이후 합쳐지는 부분마다 대문자로 표현
    • 타입 (구조체, 클래스, 익스텐션, 프로토콜, 열거형)을 사용할 때 명명
// 클래스
class MyCar {...}

// 구조체
sturct MyPerson {...}

// 열거형
enum MyFavoriteColor {...}

 

 

  • 따라서, 함수를 표기한다는 의미는 특정 함수를 지칭하는 방식입니다.
    • 이를 통해  Apple 공식문서 혹은 함수의 타입을 이해할 수 있습니다. 
    • 가장 만만하고, 자주 사용하는 print 함수 를 Apple Document에서 살펴보면..

위 함수는 print(_:separatior: terminator:) 로 표기한다!
위 함수는 print(_:separatior: terminator:) 로 표기한다!

 

 

 

 

 

함수 표기법, 어떻게 사용하나요? 

  • 표기 방법은 매우 간단하며, 매개변수의 유무에 따라 구분됩니다.
    • 매개변수, 즉 '파라미터'만을 표현하며
    • 리턴타입(Return Type)은 함수 표기법 내 작성되지 않습니다.

 

 

 

매개변수가 존재하는 함수 표기법

  • 매개변수가 1개 이상 존재할 경우, 아래와 같이 표현(표기) 합니다.

매개변수가 존재하는 함수 표기법

 

  • 여기서 주의해야 할 점은, '전달인자(ArgumentLabel)'가 존재하는 경우입니다.
    • 인자가 존재할 경우, 표기법에서 해당 인자값을 우선시 하여 작성합니다.
    • 아래 예시 코드 중 1-2, 1-3 에서 표현됩니다.
// 1-1. 하나의 매개변수
func myNickName(name: String) { }                 // myNickName(name:)

// 1-2. 인자(생략)가 있는 매개변수
func myNickName(_ name: String) { }               // myNickName(_:)

// 1-3. 인자(표기)가 있는 매개변수
func myNickName(to name: String) { }              // myNickName(to:)

// 1-4. 다중 매개변수
func myNickName(name: String, age: Int) { }       // myNickName(name: age:)

 

 

 

매개변수가 존재하는 함수 표기법

  • 매개변수가 존재하지 않을 경우, 아래와 같이 함수 이름만으로 표기합니다.
    • 이름 뒤에 괄호 () 는 작성하지 않습니다.

 

매개변수가 존재하는 함수 표기법

// 2-1. 매개변수, 반환값이 없을 경우
func myHome() { }                 // myHome

 

 

 


 

 

 

다음 포스팅인

함수의 타입, 1급 객체함수 파트에서

 

함수 표기법에 대한 활용방식에 대해 보다 자세히 알아보도록 하겠습니다.

 

댓글