OC與Swift的區別五,OCSwift區別五
13 函數
oc函數定義:
傳回值類型 函數名(參數類型 參數名,參數類型 參數名){
}
swift 函數定義:
func 函數名(參數名:參數類型,參數名:參數類型) -> 傳回值類型{
}
swift中沒有傳回值的函數有三種寫法:
13.1
func 函數名(參數名:參數類型,參數名:參數類型) -> Void{
}
13.2
func 函數名(參數名:參數類型,參數名:參數類型) -> (){
}
13.3
func 函數名(參數名:參數類型,參數名:參數類型){
}
swift中沒有行參的函數函數名後面的小括弧也不能省略
返回元組的函數定義:
func 函數名(參數名:參數類型,參數名:參數類型) -> (元素名稱:元素類型,元組名稱:元素類型){
}
swift中的外部參數名
func 函數名(外部參數名 形式參數名:參數類型,外部參數名 形式參數名:參數類型) -> 傳回值類型{
}
//形式參數名前面加上# ,則外部參數名與形式參數名相同
func 函數名(#形式參數名:參數類型,#形式參數名:參數類型) -> 傳回值類型{
}
當調用增加了外部參數名的函數,在調用時,則編譯器會自動產生帶有外部參數名的調用,並且外部參數名在調用時必須加上,這樣可以增加調用者對參數的可讀性
如
func addPerson(person_name:String,person_age:Int){
}
addPerson(person_name:"jack",person_age:28)
swift中的預設參數值
func 函數名(外部參數名 形式參數名:參數類型 = 參數預設值,外部參數名 形式參數名:參數類型) -> 傳回值類型{
}
帶有預設值的函數調用時,有預設值的參數可以不傳值,且如果不指定有預設值行參的外部參數名,swift會自動產生一個與其行參名相同的外部參數名,在有預設值的行參參數名前加上_,則調用時不需要寫其外部參數名
注意: oc中參數在函數體內是可以修改其值的,因為其作用類似於局部變數。但是在swift中,參數預設都是常量參數,不能在函數體內修改參數值。如果需要在函數體內修改參數值,則需要定義變數參數,即在參數名前加var關鍵字即可。