스위프트 - 함수

함수는 특정 작업을 수행하는 자체 포함된 코드 덩어리입니다. 함수가 하는 일을 식별하는 이름을 지정하면 이 이름은 필요할 때 작업을 수행하기 위해 함수를 "호출"하는 데 사용됩니다.

함수 정의 및 호출




func greet(person:String) -> String {
return "Hello, " + name
}

greet(person:"Ajith")
//Hello, Ajith


주의할 점


  • 매개변수 없이 함수가 있을 수 있음(같은 값을 반환함)
  • 함수에 여러 매개변수가 있을 수 있음
  • 반환 값이 없는 함수(함수 정의에 반환 화살표(->) 또는 반환 유형이 포함되어 있지 않습니다.
  • 함수가 호출될 때 함수의 반환 값을 무시할 수 있습니다.
  • 함수가 여러 반환 값(튜플)을 반환할 수 있음

  • 함수 인수 레이블 및 매개변수 이름



    각 함수 매개변수에는 인수 레이블과 매개변수 이름이 모두 있습니다.
    함수를 호출할 때 인수 이름이 사용됩니다.
    각 인수는 그 앞에 인수 레이블이 있는 all 함수에 작성됩니다.
    매개변수 이름은 함수 구현에 사용됩니다.

    참고: 기본적으로 매개변수는 매개변수 이름을 인수 레이블로 사용합니다.

    func functionName(argument label parameter Name:Int){
    //function body
    }
    
    functionName(argument label: arg)
    


    가변 매개변수



    가변 매개변수는 지정된 유형의 0개 이상의 값을 허용합니다. 가변 매개변수를 사용하여 함수가 호출될 때 매개변수가 다양한 수의 입력 값을 전달할 수 있도록 지정합니다. 매개변수의 유형 이름 뒤에 세 개의 마침표(...)를 삽입하여 가변 매개변수를 작성합니다.

    func arithmeticMean(numbers: Double...) -> Double {
        var total: Double = 0
        for number in numbers {
            total += number
        }
        return total / Double(numbers.count)
    }
    arithmeticMean(1, 2, 3, 4, 5)
    // returns 3.0, which is the arithmetic mean of these five numbers
    arithmeticMean(3, 8.25, 18.75)
    // returns 10.0, which is the arithmetic mean of these three numbers
    


    참고: 함수에는 여러 매개변수가 있을 수 있으므로 가변 매개변수 다음에 오는 첫 번째 매개변수에는 인수 레이블이 있어야 합니다.

    인-아웃 매개변수



    함수 매개변수는 기본적으로 상수입니다. 해당 함수의 본문 내에서 함수 매개변수의 값을 변경하려고 하면 컴파일 시간 오류가 발생합니다. 이는 실수로 매개변수 값을 변경할 수 없음을 의미합니다. 함수가 매개변수 값을 수정하도록 하고 함수 호출이 끝난 후에도 변경 사항을 유지하려면 해당 매개변수를 인-아웃 매개변수로 대신 정의하십시오.

    func swapTwoInts(_ a: inout Int, _ b: inout Int) {
        let temporaryA = a
        a = b
        b = temporaryA
    }
    
    var someInt = 3
    var anotherInt = 107
    swapTwoInts(&someInt, &anotherInt)
    print("someInt is now \(someInt), and anotherInt is now \(anotherInt)")
    // Prints "someInt is now 107, and anotherInt is now 3"
    
    


    참고: In-out 매개변수는 기본값을 가질 수 없으며 가변 매개변수는 in-out으로 표시할 수 없습니다.

    매개변수 유형으로서의 함수 유형



    함수를 다른 함수에 대한 매개변수로 사용할 수 있습니다.

    func addTwoInts(_ a: Int, _ b: Int) -> Int {
        return a + b
    }
    
    func printMathResult(_ mathFunction: (Int, Int) -> Int, _ a: Int, _ b: Int) {
        print("Result: \(mathFunction(a, b))")
    }
    printMathResult(addTwoInts, 3, 5)
    // Prints "Result: 8"
    
    


    함수 유형을 반환 유형으로



    함수 유형을 다른 함수의 반환 유형으로 사용할 수 있습니다. 반환하는 함수의 반환 화살표(->) 바로 뒤에 완전한 함수 유형을 작성하여 이를 수행합니다.

    중첩 함수



    지금까지 이 블로그에서는 전역 범위에서 정의된 전역 함수의 예를 살펴보았습니다. 중첩 함수라고 하는 다른 함수의 본문 내부에 함수를 정의할 수도 있습니다.

    좋은 웹페이지 즐겨찾기