Swift_함수(Function)

9446 단어 함수swift

함수(Function)


Swift의 함수는 OC의 방법에 해당합니다.그러나 문법상의 변화는 매우 많고 OC에 없는 기능도 추가되었다. 다음은 상세하게 소개한다.

함수 유형


매개변수 없음, 반환 값 없음

// func          :  
// function1     :  
// ()            :  
// Void          :  
func function1() -> Void {
    print(" ")
}

//  Void , , 
func function2() {
    print(" ")
}

매개변수, 반환값 없음

//  、 
func printInt(a: Int) {
    print(a)
}

//  , 
func printText(a: Int, b: Float, c: String) {
    print("\(a) \(b) \(c)")
}

매개변수 없음, 반환값 있음

//  、 
func PI() -> Double {
    return 3.14
}

//  , 
func notFoundMsg() -> (Int, String) {
    return (404,  "Not Found")
}

매개변수, 반환값

//  Int 、 Int 
func sumValue(a: Int, b: Int) -> Int {
    return a + b
}

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

//  , Int 
func maxAndMinValue(array: [Int]) -> (min: Int, max: Int) {
    var minValue = array[0]
    var maxValue = array[0]

    for value in array {
        if value < minValue {
            minValue = value
        } else if value > maxValue {
            maxValue = value
        }
    }

    return (minValue, maxValue)
}

//  , 
let res = maxAndMinValue([10, 34, 23, 56, 23])
//  
print("\(res.min) \(res.max)")
//  : 10  56

내부 매개변수 이름, 외부 매개변수 이름


함수의 매개 변수 이름은 우리가 매개 변수에 대한 이해를 편리하게 하는 것이다. 좋은 매개 변수 이름은 우리의 코드 품질을 향상시킬 수 있다.Swift 언어에서 매개변수 이름은 로 나눌 수 있습니다.간단하다. 내부 매개 변수 이름은 함수 내부에서 사용하는 이름이고, 외부 매개 변수 이름은 함수가 호출될 때 표시되는 이름이다.

기본 매개변수 이름

//  
func funcNames(name: String, age: Int, height: Float) {
    print("\(name) \(age) \(height)")
}

//  , : age / height, : name
funcNames(" ", age: 18, height: 20)
//  , , , , 

전체 내부 매개 변수 이름과 외부 매개 변수 이름을 쓰다

//  
//  : 
//      withName、withAge、withHeight , 
//      name、age、height , 
func funcNames1(withName name: String, withAge age: Int, withHeight height: Float) {
    print("\(name) \(age) \(height)")
}

//  , :withName / withAge / withHeight
funcNames1(withName: "lidaze", withAge: 18, withHeight: 180)

외부 매개변수 이름 숨기기


Swift에서 컨텐트를 무시해야 할 경우 _ 기호를 사용하십시오. 매개변수 이름도 마찬가지입니다. 
//    
func funcNames2(name: String, _ age: Int, _ height: Float) {
    print("\(name) \(age) \(height)")
}
funcNames2("lidaze", 18, 180.0)

만약 매개 변수 이름을 모두 생략한다면, 우리가 코드를 읽는 데 증가하는 어려움에 대해 생략하는 것을 건의하지 않는다

가변, 가변 매개변수


Swift에서 함수 내부에서 기본적으로 매개 변수의 값을 수정하는 것을 금지하지만, 우리는 일부 표지를 추가함으로써 매개 변수의 수정을 실현할 수 있다. 자세한 내용은 다음과 같다.

불변 매개변수

//  
func notChangeParam1(let a: Int) {
    //  
//    a = 10
}

//  let, 
func notChangeParam2(a: Int) {
    //  
//    a = 10
}

가변 매개변수


우리가 매개 변수의 값을 수정하려고 할 때, 우리는 var 수식 매개 변수를 사용할 수 있습니다. 이렇게 매개 변수의 값을 수정하면 실제 참조의 값에 영향을 주지 않습니다. 
//  
func changeParam(var a: Int) {
    print(a)
    a = 10
    print(a)
}
//  , var , let, 

매개변수 가져오기, 내보내기


함수 내부에서 매개 변수를 수정하면 실참의 값은 변하지 않는다는 것을 모두가 알고 있다.그러면 우리가 외부 매개 변수 값을 바꾸고 싶다면?사용하십시오inout
//  
func inoutParamFunc(inout a: Int) {
    a += 10
}

var num = 20
inoutParamFunc(&num)
print("num = \(num)")
// 30

인자가 inout 키워드로 수식되면 함수 내부에서 인자의 값을 수정하면 외부 인자의 값에 영향을 줍니다.C 언어에서 매개 변수의 주소를 전달한 다음 주소를 이용하여 매개 변수의 값을 수정한 것과 유사하다

기본 매개변수 값


Swift에서 함수를 호출할 때 매개 변수가 있는 함수도 매개 변수를 전달하지 않을 수 있습니다. 매개 변수는 기본값을 가지고 있기 때문입니다. 다음과 같습니다.
//  
func defaultParam(a: Int = 12) {
    print(a)
}
defaultParam()
//  : 12
defaultParam(20)
//  : 20

가변 매개변수


Swift에서 임의의 수량의 매개 변수를 실현하는 것은 매우 쉬운 일이지만, 하나의 함수는 가변 수량의 매개 변수만 허용한다는 것을 주의하십시오.
//  
func moreParams(numbers: Int...) {
    for number in numbers {
        print(number)
    }
}
moreParams(10, 20, 34, 24, 56, 24)
//  : 10, 20, 34, 24, 56, 24

함수당 최대 1개의 변수 허용

중첩 함수

//  
func chooseFunc(a: Int, b: Int, funcName: String) -> Int {

    //  Swift , 
    func sum(a: Int, b: Int) -> Int {
        return a + b
    }

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

    if funcName == "sum" {
        return sum(a, b: b)
    } else {
        return diff(a, b: b)
    }
}
chooseFunc(10, b: 20, funcName: "sum")

함수 중첩의 등급은 무제한이지만, 많은 것을 건의하지 않는다

좋은 웹페이지 즐겨찾기