특정 작업을 수행하기 위해, 호출할 수 있도록 이름 붙여진 일종의 코드 블록
함수에 대해 간략하게 지난 포스팅에서 다루어 보았습니다.
앞으로, 코드와 예제를 통해
- 무슨 형태의 키워드를 활용하여 선언하는지,
- 어떤 요소들로 구성되어 있는지,
- 어떻게 함수의 기능을 불러와 사용할 수 있는지
찬찬히 살펴보도록 하겠습니다.
함수의 선언과 호출
함수를 선언하기 위한 요소를 구성하고, 이를 활용하기 위해 호출한다!
지난 포스팅 마지막 파트에서 잠깐 살펴본
print() 란 우리에게 매우 익숙한 출력함수가 있었는데요..
출력함수가 만들어진 내용을 살펴보면 아래 코드와 같습니다.
func print(_ items: Any..., separator: String = " ", terminator: String = "\n")
print()는 다양한 코드 요소들로 구성되어 있는 블럭, 즉 'print'란 이름을 지닌 고유 함수이며
개발자들이 자주 사용할 수 있도록 미리 선언(혹은 정의)된 함수로 볼 수 있습니다.
이와 마찬가지로,
var someInt : Int = 3
print("\(someInt)") // 3
위 예시코드와 같이, 변수 someInt에 할당된 값을 Console에 출력하기 위하여
이미 익숙하게 print() 함수를 호출(활용)하여 사용하고 있었습니다 !
선언방법
- 함수를 컴파일러에 알려주고, 저장하기 위해, func 키워드를 사용하여 선언합니다!
- 기본적으로 선언하는 형태는 다음과 같습니다.
구성요소
- 매우 복잡해 보이지만, 하나씩 살펴보면 [자판기] 와 매우 유사한 기능을 담당한다는 것을 알 수 있습니다.
- 각각의 구성 요소들의 역할과 기능은 다음과 같습니다.
- 전달인자의 경우, 다음 '매개변수' 관련 포스팅에서 다루도록 하겠습니다.
- 예시코드를 통해 구성요소에 대해 간단하게 살펴보겠습니다.
- 커피를 주문한 고객에게, 고객의 이름과 주문한 커피의 개수를 알려주는 함수의 선언
1단계. 함수 키워드(func)를 작성하고, 함수의 이름 을 정한다.
2단계. 이름과 개수를 알려줄 수 있는 매개변수(혹은 전달인자)를 설정하고, 타입 을 지정한다.
3단계. 알려주는 메세지의 데이터 타입인 String을 반환타입으로 설정한다.
(반환타입은 생략할 수 있으며, 존재할 경우엔 코드 내부에 Return 키워드를 작성한다) 📌
4단계. 앞서 선언한 매개변수를 활용, 문자열 보간을 활용한 내부 코드 를 작성한다.
func callMessage (customerName name: String, orderCount count: Int) -> String {
📌return "\(name)님, 주문하신 아메리카노 \(count)잔 나왔습니다"
}
호출방법
- 선언한 함수를 사용하고 값을 호출하기 위해, 아래와 같은 형태의 코드로 작성합니다.
- 앞서 활용한 예시(고객 이름과 커피의 개수)에서 선언한 함수를 호출해보자면,
// callMessage 함수선언
func callMessage (customerName name: String, orderCount count: Int) -> String {
return "\(name)님, 주문하신 아메리카노 \(count)잔 나왔습니다"
}
// 함수 호출1 (print 함수를 곁들인)
print(callMessage(customerName: "Lime", orderCount: 2))
// "Lime님, 주문하신 아메리카노 2잔 나왔습니다"
// 함수 호출2 (임의의 상수에 함수를 선언한 후, 해당 상수를 Print 함수로 호출)
let callMessageResult = callMessage(customerName: "Lime", orderCount: 2)
print(callMessageResult)
// "Lime님, 주문하신 아메리카노 2잔 나왔습니다"
여기까지가 함수의 선언, 구성하는 요소와 호출방법입니다.
이후 포스팅에서는
구성요소 중, '전달인자'와 '매개변수'에 대해 다뤄보도록 하겠습니다.
'iOS > Swift' 카테고리의 다른 글
[iOS/Swift] 매개변수는 사실 상수였다?! (함수를 호출하는 2가지 방법) (0) | 2022.11.17 |
---|---|
[iOS/Swift] 매개변수(parameter)와 전달인자(argument) (0) | 2022.11.17 |
[iOS/Swift] Function, 함수 찍먹하기 (2) | 2022.11.11 |
[iOS/Swift] 알아두면 유용한, 열거형(Enumeration) ② (0) | 2022.11.07 |
[iOS/Swift] 알아두면 유용한, 열거형(Enumeration) ① (0) | 2022.11.05 |
댓글