関数の詳細


1.パラメータデフォルト

  • パラメータのデフォルトの転送値を事前に指定できます.
  • のデフォルト値を持つパラメータは、パラメータリストの後ろにあることを推奨します.
  • func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 = 매개변수 기본값 ...) -> 반환타입 {
        /* 함수 구현부 */
        return 반환값
    }
    
    func greeting(friend: String, me: String = "velmash") {
        print("Hello \(friend)! I'm \(me)")
    }
    
    // 매개변수 기본값을 가지는 매개변수는 호출시 생략할 수 있습니다
    greeting(friend: "hana") // Hello hana! I'm velmash
    greeting(friend: "john", me: "eric") // Hello john! I'm eric

    2.パラメータラベルを渡す

  • 関数が呼び出されると、関数ユーザにとって、パラメータの役割をより明確に表すことができる.
  • 転送パラメータラベルは、変更によって同じ名前の関数を繰り返し作成することができる.
  • func 함수이름(전달인자 레이블 매개변수1이름: 매개변수1타입, 전달인자 레이블 매개변수2이름: 매개변수2타입 ...) -> 반환타입 {
        /* 함수 구현부 */
        return
    }
    
    // 함수 내부에서 전달인자를 사용할 때에는 매개변수 이름을 사용합니다
    func greeting(to friend: String, from me: String) {
        print("Hello \(friend)! I'm \(me)")
    }
    
    // 함수를 호출할 때에는 전달인자 레이블을 사용해야 합니다
    greeting(to: "hana", from: "velmash") // Hello hana! I'm velmash

    3.可変パラメータ

  • 転送値の数を特定することが困難な場合に使用する.
  • 各関数には
  • 可変パラメータしかありません.
  • デフォルト値
  • のパラメータがある場合は、パラメータリストの後ろに可変パラメータを配置することを推奨します.
  • //func 함수이름(매개변수1이름: 매개변수1타입, 전달인자 레이블 매개변수2이름: 매개변수2타입...) -> 반환타입 {
    //    /* 함수 구현부 */
    //    return
    //}
    
    func sayHelloToFriends(me: String, friends: String...) -> String {
        return "Hello \(friends)! I'm \(me)!"
    }
    print(sayHelloToFriends(me: "velmash", friends: "hana", "eric", "wing"))
    // Hello ["hana", "eric", "wing"]! I'm velmash!
    
    print(sayHelloToFriends(me: "velmash"))
    // Hello []! I'm velmash!
    戻り値を持たない関数、パラメータのデフォルト値、転送パラメータラベル、および可変パラメータを混在させることができます.

    4.データ型としての関数

  • swiftは、関数式プログラミングパターンを含むマルチパターン言語であるため、swiftの関数は1級オブジェクトである.したがって,関数を変数や定数などに割り当てることもできるし,パラメータで渡すこともできる.
  • 関数のタイプ表現:戻りタイプは省略できません.(매개변수1타입, 매개변수2타입 ...) -> 반환타입
  • 関数タイプ
  • を使用
    var someFunction: (String, String) -> Void = greeting(to:from:)
    someFunction("eric", "velmash") // Hello eric! I'm velmash
    
    someFunction = greeting(friend:me:)
    someFunction("eric", "velmash") // Hello eric! I'm velmash
    
    
    // 타입이 다른 함수는 할당할 수 없습니다 - 컴파일 오류 발생
    //someFunction = sayHelloToFriends(me: friends:)
    
    
    func runAnother(function: (String, String) -> Void) {
        function("jenny", "mike")
    }
    
    // Hello jenny! I'm mike
    runAnother(function: greeting(friend:me:))
    
    // Hello jenny! I'm mike
    runAnother(function: someFunction)
    **swift全体の構文では、スペースに注意することがよくあります.
    すべてのソースコードはhttps://github.com/velmash/swift_basicにあります.