Swiftノート関数の基本的な使用

2564 ワード

関数の紹介
  • 関数がOCに相当する方法
  • 関数フォーマット
  • func関数名(パラメータリスト)→戻り値タイプ{コードブロックretuan戻り値}
  • func add(num1:Int,num2:Int)→Int{
    return num1+num2
    }
    
  • 無パラメータ無戻り値
  •  // (): 
    func add()→Void{
    return
    }
    // 
    func add()→(){
    return
    }
    // 
    func add() {
    return
    }
    
  • パラメータあり戻り値なし
  • func add(num:Int){
    return
    }
    
  • パラメータなし戻り値
  •  func add() →Int{
     return 100
     }
    
  • 複数の戻り値を持つ関数(戻り元)
  • func getPerson() →(name:String,age:Int){
    return(" ",3)
    }
    

    関数の使用上の注意
  • 外部パラメータと内部パラメータ
  • 関数内部のパラメータ、すなわち内部パラメータ、外部のパラメータ、すなわち外部パラメータ
  • .
    func add( num1:Int , num2:Int){
    print(num1+num2)
    } 
    
    // , 
    //  ; _ 
     func add( _ num1:Int , abc num2:Int){
     print(num1+num2)
     } 
    
  • デフォルトパラメータ
  • 特定のパラメータが入力されていない場合は、デフォルトのパラメータ
  • を使用します.
  • デフォルト値を使用する場合、関数の受容パラメータは、必須パラメータと伝達可能パラメータの任意の組合せ
  • とすることができる.
  • アプリケーション:インタフェースのアップグレード保証インタフェースの互換性
  •  , 
    func addNum(num1:Int,dis:Int =0)→Int{
    return num1+dis
    }
    
  • 可変パラメータ
  • 形式:タイプ...
  • 関数内部はこのパラメータを配列として処理し,関数外部は直接複数の値
  • を伝達することができる.
      func add(_ nums :Int...) → Int{
      var result = 0
      for num In nums{
      result += num
      }
      }
      add(1,2,3,4)
    
  • 関数内部では、デフォルトで受信パラメータは定数に割り当てられ、変更するにはvar修飾
  • を関数内部で使用する必要がある.
     func change(num :Int){
     var num = num
     num = 3
    }
    let a =0
    change(num:a)
    
  • ポインタの転送
  • デフォルトでは関数のパラメータは値伝達であり、外部の変数を変更するには変数を伝達するアドレス
  • が必要である.
  • は、
  • の値を内部で変更する必要があるため、変数でなければならない.
  • swiftが提供するinoutキーワードは
  • を実現することができる.
      func chang(num :inout Int){// ( ) 
       num = 3
     }
     var b = 0
      change(num:&b)
    
  • 関数のネスト使用
  • 関数には関数が含まれていますが、
  • の使用は推奨されません.
      func text(){
               func text2(){
               }
      } 
    

    関数のタイプ
  • 関数タイプ:パラメータタイプと戻り値タイプ
  •  func add(num:Int,num2:Int)→ Int{
     return num +num2
     }
     // (Int,Int)→Int
     func jian(num:Int,num2:Int)→ Int{
     return num -num2
     }
    
  • 用途:別の関数として使用できるパラメータ/戻り値
    // 
    func exec(n1:Int,n2:Int,fun:(Int,Int) →Int){
    let result = fun(n1,n,2)
    print(result)
    }
    exec(n1:6,n2:8,fun:add)
    // 
    func getFunc(name:String) →(Int,Int) →Int{
       if name=="add"{
           return add
       }   
       return jian
    }
    
  • コンパイラが異なる関数をどのように区別するか
  • 関数名
  • 外部パラメータ名
  • パラメータタイプ+戻り値タイプ=関数タイプ
  • func text(a:Int){
    }
    func text(b:Int){
    }
    // ,