[Swift]7.0函數

7.1定義與調用

Swift中函數與c中函數大體相似,可以獨立存在,作爲全局函數;或是在別的函數中使用,
即嵌套函數。同樣需要定義,再調用。

  • 7.1.1定義函數
    在Swift中,定義函數和c中不同,需要一個關鍵字func
    其語法格式
func 函數名(參數列表)->返回值類型{
     語句
     return 返回值
}

eg:

func rectanglearea(width:Double,height:Doule)->Double{  //定義求矩形面積函數
      let area = width * height
      return area
}
  • 7.1.2函數調用

函數名(參數名字:參數值)

print(rectanglearea(width:1e,height:2))
-------

7.2關於參數

  • 7.2.1無參數
    首先無參數是可以的
func sayHelloWorld()-> String{  
        return "hello,world"  
    }  
  • 7.2.2使用外部參數
    什麼是外部參數?在函數中定義時,只在內部使用的參數叫作”局部參數名“,相對地,
    如7.1.2中調用時用的參數可稱爲”外部參數名“。
print( rectanglearea ( width : 10 , height : 10 ) )
//width 和 height 便是外部參數

我們還可以給每個參數提供一個外部參數名

func rectanglearea(W width:Double,H height:Doule)->Double{  //W,H 爲所被提供的外部參數名
      let area = width * height
      return area
}

print( rectanglearea ( W : 10 , H : 10 ) ) 
  • 7.2.3省略外部參數
    外部函數名可以作爲參數真實信息載體,使輸入更準確,防止輸入錯漏。提高代碼可讀性,
    但Swift還是提供省略外部參數的方法

    在每個參數名前 加 _ (下劃線)

func rectanglearea(_width:Double,_height:Doule)->Double{  //在每個參數名前加'_'(下劃線)
      let area = width * height
      return area
}

參數較多時不要省略外部參數名,以防錯漏。

  • 7.2.4參數默認值
    爲參數設置一個值作爲默認值,當調用參數時可忽略這個默認值,使用調用時的添加值。
func makeasong(fruit : String = "pen" )-> String{
     return "I have a \(fruit)"
}

let song1 = makeasong ()           //I have a pen
let song1 = makeasong (apple)      //I have a apple
let song3 = makeasong (pineapple)  //I have a pineapple
  • 7.2.5可變參數

參數個數不定時使用...來接受變量的定義
注意:變量類型要相同

func sum(numbers : Double...)-> Double{
   var total: Double = 0
   for i in numbers {
        total += number

   }
   return total
}


sum( -20 , 0.1 , 100)    //-20+0.1+100 = 80.1

7.3返回值

主要三種: 無返回值 , 單一返回值 , 多返回值。
單一返回值不再贅述。

  • 7.3.1無返回值
    去掉return語句
func 函數名(參數列表){
     語句                      //有三種方式 ,此爲1
}

func 函數名(參數列表)->(){
     語句
}                              // 方法2

func 函數名(參數列表)->Void{
     語句
}                              // 方法3
  • 7.3.2多返回值
    需要多返回值時,有兩種方法去實現。第一便是在函數定義時
    第二中是將返回值定義爲元組類型
func position(dt : Double ,speed:(x :Int , y :Int)) -> (x :Int , y :Int){
   let posx : 
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章