프로그래밍 초보자 Swift 함수 및 클로저 정보

10531 단어 iOSSwift아이폰

함수와 클로저



언제까지나 함수를 인수로 부른다는 작업을 할 때 손이 멈춰 버리는 장기 인턴생입니다.
작업을 하고 있는 동안에 인수의 취급 방법을 모르게 된 것이 몇번이나 있다.
거기서, 또 손이 멈춰 버렸을 때를 위해 키타에 올려 두려고 생각합니다.
투고하는 내용이 교과서 레벨인 것만으로 부끄럽다.

처리 재사용


  • 함수와 클로저는 단독 처리를 잘라내어 재사용 가능하게 하기 위한 것.
  • 함수와 클로저는 임의의 타이밍에서 실행할 수 있으므로, 중복 처리를 한 곳에 정리하여 가독성이나 유지 보수성을 높일 수 있다.

  • 기능


    名前を持ったひとまとまりの処理

    정의 방법


    func 関数名(引数名1: , 引数名1: ) -> 戻り値の型 {
        関数呼び出し時に実行される文
        必要に応じてreturn文で戻り値を返却
    }
    

    EX
    func double(x: Int) -> Int {
        return x * 2
    }
    
    double(x: 2) // 4
    

    실행 방법


    
    関数名(引数名1: , 引数名1: )
    
  • 인수명이 없는 경우는 인수만을 기술.
  • 반환 값이 정의 된 함수를 호출하는 경우 반환 값을 변수 또는 상수에 할당합니다.
  • 반환값의 대입을 생략하면 컴파일러가 경고를 내린다.
  • 
    let 定数名 = 関数名(引数名1: , 引数名1: )
    

    인수


    関数への入力

    임시 인수와 실제 인수



    임시 인수
    함수 정의시 선언하는 것
    실제 인수
    함수 호출시 지정하는 것

    이 경우 int는 임시 인수이고 1은 실제 인수입니다.
    func printInt(int: Int) {
        print(int)
    }
    
    printInt(int: 1)
    

    외부 인수 이름과 내부 인수 이름



    인수명은 함수의 호출시에 사용하는 외부 인수명과, 함수내에서 사용되는 내부 인수명의 2 개를 가질 수가 있다.

    정의 방법


    外部引数名 内部引数名 : 型
  • 외부 인수 이름은 _로 생략 할 수 있습니다.
  • 외부 인수 이름이 _로 생략되면 인수 이름과 인수로 구분됩니다.
    func sum(_ int1: Int, _ int2: Int) -> Int {
        return int1 + int2
    }
    
    let result = sum(1, 2)
    

    기본 인수


    引数のデフォルト値
  • 인수에는 디폴트치를 지정할 수 있고, 디폴트치를 가지는 인수는 함수 호출시에 생략할 수 있다.
  • 인수의 기본값을 기본 인수라고합니다.
  • 기본 인수를 지정하려면 일반 인수 선언 다음에 값 할당을 추가하십시오.
  • func eat(food: String = "カレー") {
        print("私は\(food)が食べたい")
    }
    
    eat()
    eat(food: "ラーメン")
    

    인아웃 인수


    関数外に変更を共有する引数인수의 형태의 선두에 inout (을)를 추가한다.
    인 아웃 인수를 가지는 함수를 호출하려면, 인 아웃 인수의 선두에 &를 더합니다.
    func start(user: inout String) {
        if user.isEmpty {
            user = "World"
        }
        print("Hello, \(user)!")
    }
    
    var user: String = ""
    start(user: &user) // Hello, World!
    

    가변 길이 인수


    任意の個数の値を受け取る引数
  • 함수가 호출자에게 배열임을 알지 못함
  • 하나의 함수에 대해 최대 하나의 가변 길이 인수를 정의 할 수 있습니다
  • 인수 정의의 끝에 ...를 추가하여 정의
  • 인수를 구분 기호로 전달
  • 가변 길이 인수로 수신 된 인수는 함수 내부에서 Array 유형으로 처리됩니다. 따라서 함수 내에서 가변 길이 인수에 액세스하는 방법은 Array 유형의 요소에 액세스하는 방법과 유사합니다.

  • 함수 내에서 가변 길이 인수의 유형은 [문자열]로 처리됩니다.
    func print(strings: String...) {
        if strings.count == 0 {
            return
        }
    
        print("first: \(strings[0])")
    
        for string in strings {
            print("element: \(string)")
        }
    }
    
    print(strings: "abc", "def", "ghi")
    //first: abc
    //element: abc
    //element: def
    //element: ghi
    

    반환값


    関数の出力を表す値함수 선언에서 반환 값의 유형 지정은 필수가 아니며 반환 값이 필요하지 않은 경우 함수 선언에서 반환 값 유형을 생략 할 수 있습니다.
    func start(user: String) {
        print("Hello, \(user)!")
    }
    
    start(user: "World") // Hello, World!
    

    함수 선언에서 반환값의 형태의 정의를 생략했을 경우, 함수의 반환값은 Void형이 된다.
    func start(user: String) -> Void {
        print("Hello, \(user)!")
    }
    
    start(user: "World") // Hello, World!
    

    클로저


    スコープ内の変数や定数を保持したひとまとまりの処理클로저에 대해서는 시간이 있을 때 합니다

    최근에는 대학이 바쁘고 전혀 프로그래밍에 몰두하지 않았기 때문에 앞으로 빈 시간을 효과적으로 활용해 나가고 싶다. 그리고 인턴으로 손이 멈추는 시간을 줄이고 싶다,,.

    참고문헌



    [개정신판] Swift 실천입문

    좋은 웹페이지 즐겨찾기