[swift] Swift 함수

Swift에서 함수는 작업의 독립적인 코드 블록입니다. 함수는 값을 반환할 수도 있고, 인자를 받을 수도 있습니다. 이번 글에서는 Swift에서 함수를 정의하고 사용하는 방법에 대해 알아보겠습니다.

함수 정의

함수를 정의할 때는 func 키워드를 사용합니다. 예를 들어, 두 개의 정수를 더하는 함수를 정의해보겠습니다.

func addNumbers(a: Int, b: Int) -> Int {
    return a + b
}

위의 코드에서는 addNumbers라는 함수를 정의했습니다. 이 함수는 ab라는 두 개의 정수를 인자로 받고, 두 정수의 합을 반환합니다.

함수를 호출할 때는 함수의 이름을 사용하고, 괄호 안에 인자 값을 전달합니다. 예를 들어, 위에서 정의한 addNumbers 함수를 호출해보겠습니다.

let sum = addNumbers(a: 5, b: 3)
print(sum) // 출력: 8

위의 코드에서는 addNumbers 함수를 호출하여 a에는 5를, b에는 3을 전달했습니다. 이렇게 함수를 호출하면 함수 내부의 코드가 실행되고, 반환된 결과를 sum 변수에 저장합니다. 결과적으로 sum 변수에는 8이 저장되며, 이를 출력하면 8이 출력됩니다.

매개변수 레이블

Swift에서는 함수의 인자에 매개변수 레이블을 지정할 수 있습니다. 매개변수 레이블은 함수를 호출할 때 사용하는 이름을 의미합니다. 기본적으로 인자명과 매개변수명이 동일하게 사용되지만, 매개변수 레이블을 사용하여 사용자에게 더 의미있는 인자명을 전달할 수 있습니다.

func sayHello(to name: String) {
    print("Hello, \(name)!")
}

위의 코드에서는 sayHello라는 함수를 정의했습니다. 이 함수는 name이라는 String 타입의 인자를 받아서 “Hello, {name}!” 형식의 메시지를 출력합니다. 하지만 to라는 매개변수 레이블을 사용하여 함수를 호출할 때 인자를 전달할 때 더 명확한 의미를 가진 to라는 이름을 사용할 수 있습니다.

sayHello(to: "Tom") // 출력: Hello, Tom!

위의 코드에서는 sayHello 함수를 호출할 때 to라는 매개변수 레이블을 사용하여 “Tom”이라는 인자를 전달했습니다. 이를 실행하면 “Hello, Tom!”이 출력됩니다.

가변 매개변수

Swift에서는 가변 개수의 인자를 받을 수 있는 가변 매개변수를 사용할 수 있습니다. 가변 매개변수는 인자의 개수를 동적으로 지정할 수 있습니다.

func sumNumbers(_ numbers: Int...) -> Int {
    var sum = 0
    for number in numbers {
        sum += number
    }
    return sum
}

위의 코드에서는 sumNumbers라는 함수를 정의했습니다. 이 함수는 가변 개수의 Int 타입 인자를 받아서 인자들의 합을 반환합니다. 매개변수 이름 앞에 _을 사용하여 매개변수 레이블을 생략할 수 있습니다.

let total = sumNumbers(1, 2, 3)
print(total) // 출력: 6

위의 코드에서는 sumNumbers 함수를 호출할 때 1, 2, 3을 인자로 전달했습니다. 이를 실행하면 6이 출력됩니다.

반환 값

Swift 함수는 값을 반환할 수 있습니다. 함수에서 반환하고자 하는 값의 타입은 함수의 정의에서 반환 타입으로 명시해주어야 합니다.

func multiplyNumbers(a: Int, b: Int) -> Int {
    return a * b
}

위의 코드에서는 multiplyNumbers라는 함수를 정의했습니다. 이 함수는 ab라는 두 개의 인자를 받고, 두 인자의 곱을 반환합니다.

let result = multiplyNumbers(a: 4, b: 5)
print(result) // 출력: 20

위의 코드에서는 multiplyNumbers 함수를 호출하여 a에는 4를, b에는 5를 전달했습니다. 이를 실행하면 20이 출력됩니다.

참조