본문 바로가기

학교 수업/ios 개발 공부

[swift] 함수 선언 형태, 함수 호출

안녕하세요 소프트웨어 공부하는 레오존입니다.

이번 포스팅에선 함수와 여러 가지 함수표현들에 대해 정리해 보도록 하겠습니다.

 

 

함수

 

 

프로그래밍에서 함수는 특정한 행동을 실행해 주는 코드라고 할 수 있는데, 특정 목적을 지니고 있기 때문에 각각의 목적에 맞게 함수를 사용할 수 있다는 장점을 갖고 있습니다.

먼저 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 프로그래밍을 위한 스위프트 기초

부스트코스 무료 강의

www.boostcourse.org