안녕하세요 소프트웨어 공부하는 레오존입니다.
이번 포스팅에선 함수와 여러 가지 함수표현들에 대해 정리해 보도록 하겠습니다.
함수
프로그래밍에서 함수는 특정한 행동을 실행해 주는 코드라고 할 수 있는데, 특정 목적을 지니고 있기 때문에 각각의 목적에 맞게 함수를 사용할 수 있다는 장점을 갖고 있습니다.
먼저 swift에서 사용되는 여러 가지 함수 선언 형태와 함수 호출방법에 대해 정리해 보겠습니다.
1. 함수선언의 기본형태
- 함수의 기본적인 형태는 매개변수와 매개변수 타입, 그리고 반환타입을 가지고 선언됩니다. 여기서 매개변수란 함수에 들어가는 변수를 의미합니다. 함수이름 뒤 소괄호 안에 매개변수와 매개변수타입을 차례로 선언해 주고 소괄호를 닫아줍니다. 화살표 뒤에 함수에서 구현이 일어난 후 반환되는 반환값의 반환타입을 선언해 줍니다. 마지막으로, 중괄호 안에는 구현하고 싶은 함수 내용을 입력하여 반환값을 return 해줍니다.
// 괄호 안에 이름 : 타입, 이름 : 타입 ... 순으로 적습니다.
func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) -> 반환타입 {
함수 구현부
return 반환값
}
반환값이 존재하는 함수의 예시는 아래와 같습니다.
//divide 이라는 이름을 가지고 a와 b라는 Int 타입의 매개변수를 가지며 Int 타입의 값을 반환하는 함수
func divide(a: Int, b: Int) -> Int {
print("나누기")
return a / b
}
//divide 함수 호출
print(divide(11,2)) // 출력 결과는 아래와 같습니다.
// 나누기
// 5
2. 반환값이 없는 형태의 함수
- 반환값이 없는 형태의 함수도 존재합니다. 이 때 Void를 사용하는데 Void를 직역하면 빈 공간, 공허를 뜻하며, 프로그래밍에선 return이 되는 타입이 없음을 뜻합니다. 따라서 반환 값이 없는 함수의 경우 반환타입 대신 Void를 입력합니다. 혹은 아예 반환 타입을 생략해 줄 수도 있습니다.
func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) -> Void {
함수 구현부
return
}
반환값이 존재하지 않는 함수의 예시는 아래와 같습니다.
//반환타입이 없어 Void로 표현
func todaytodo(todo: String) -> Void {
print(todo)
}
//반환 타입(Void)을 아예 생략한 경우
func todaytodo(todo: String) {
print(todo)
}
//todatodo 함수 호출
func todaytodo(todo: "책 읽기") //실행 결과는 아래와 같습니다.
// 책 읽기
3. 매개변수가 없는 형태의 함수
- 매개변수가 없는 형태의 함수도 존재하는데, 이 경우엔 괄호 안에 매개변수 부분을 생략할 수 있습니다.
func 함수이름() -> 반환타입 {
함수 구현부
return 반환값
}
매개변수가 없는 함수의 예시는 아래와 같습니다.
func okbot1() -> String {
return "넵"
}
//okbot 함수 호출
func okbot1() //실행 결과는 아래와 같습니다.
// 넵
4. 매개변수와 반환값이 모두 없는 함수
- 마지막으로 매개변수와 반환값이 모두 없는 함수도 존재할 수 있습니다. 이러한 함수의 경우 괄호 안을 비워두고 반환타입에 Void를 입력하여 생성할 수 있습니다.
func 함수이름() -> Void {
함수 구현부
return
}
매개변수와 반환값이 모두 없는 함수의 예시는 아래와 같습니다. 반환값이 없기 때문에 반환타입을 생략해 줘도 됩니다.
함수 구현부의 길이가 짧은 경우 가독성을 해치지 않는 범위에서 줄 바꿈을 하지 않고 한 줄로 표현할 수 있습니다.
func okbot2() -> Void { print("알겠습니다") }
func okbot2() { print("알겠습니다") } // 반환 타입(Void) 생략한 경우
//okbot2 함수 호출
okbot2() //실행 결과는 아래와 같습니다.
// 알겠습니다
본 포스팅은 야곰님의 ios 프로그래밍을 위한 스위프트 기초 강의를 듣고 정리한 내용입니다.
야곰님의 ios 프로그래밍을 위한 스위프트 기초 강의 바로가기
https://www.boostcourse.org/mo122/joinLectures/38564
'학교 수업 > ios 개발 공부' 카테고리의 다른 글
[swift] 함수에서 매개변수 지정, 전달인자 레이블, 가변 매개변수, 데이터 타입으로서의 함수 (0) | 2023.03.16 |
---|---|
[swift] Set (0) | 2023.03.09 |
[swift] Any, nil, Array, Dictionary에 관하여 (0) | 2023.03.07 |
[swift] 변수와 상수 선언, 기본 데이터 타입 (2) | 2023.03.06 |
[swift] swift에서 enum과 enum 표현방법 (0) | 2023.03.05 |