Swift & iOS

[Swift] 함수, 전달인자, 매개변수

hammii 2022. 6. 8. 14:57
728x90
반응형

함수란?

  • 작업의 가장 작은 단위이자 코드의 집합
  • 하나의 기능을 하나의 함수로 만드는 것이 좋다.

 

Swift 함수 정의 방법

func 함수 이름(매개변수 이름: 매개변수 타입) -> 반환 타입 {
    return 반환 값
}

 

Swift 함수 예시

func sum(a: Int, b: Int) -> Int {
    return a + b
}
sum(a: 5, b: 3)

 

  • 매개변수가 없는 경우
func hello() -> String {
    return "hello"
}

 

  • 반환 값이 없는 경우
func hello() -> Void {
}
func hello() {
}

 

전달인자 & 매개변수

보통 함수를 정의할 때 매개변수 이름과 전달인자 레이블을 같은 이름으로 사용할 수 있지만,

전달인자 레이블을 별도로 지정하면 함수 외부에서 매개변수의 역할을 좀 더 명확히 할 수 있다 !

  • 전달인자: 함수를 실제로 호출할 때 전달하는 값
  • 매개변수: 함수를 정의할 때 외부로부터 받아들이는 전달 값의 이름
func 함수 이름(전달인자 레이블 매개변수 이름: 매개변수 타입, 전달인자 레이블 매개변수 이름: 매개변수 타입...) -> 변환 타입 {
    return 변환 값
}

헷갈린다면 함수 호출 시에는 전달인자 레이블을, 함수 내에서는 매개변수 이름을 사용한다는 것을 기억하자.

 

전달인자 & 매개변수를 사용한 함수 예시

func sendMessage(from myName: String, to name: String) -> String {
    return "Hello \(name)! Im \(myName)"
}
sendMessage(from: "하미", to: "라이언") // "Hello 라이언! Im 하미"

 

와일드카드 식별자를 사용하여 C 혹은 자바처럼 구현할 수 있다.

func sendMessage(_ name: String) -> String {
    return "Hello \(name)"
}
sendMessage("라이언") // "Hello 라이언"

 

매개변수로 0개 이상의 값을 받을 수 있으며(가변 매개변수), 배열처럼 사용 가능하다.

func sendMessage(me: String, friends: String...) -> String {
    return "Hello! \(friends)! I'm \(me)"
}
sendMessage(me: "하미", friends: "라이언", "어피치", "무지") // "Hello! ["라이언", "어피치", "무지"]! I'm 하미"

 

 

출처: [패스트캠퍼스] 30개 프로젝트로 배우는 iOS 앱 개발 with Swift 초격차 패키지 Online.

 

728x90
반응형