-函數:函數
** 函數的參數的注意事項:** 1.忽略外部參數名 若是開發者不想第二個及後續的參數設置參數名,能夠使用下一個下劃線 (_) 來代替一個明確的參數名。 func sum(value:Int,_ value2:Int) -> Int { return value + value2 } sum(value: 234, 343) 2.爲參數設置默認值 開發者能夠再函數體中爲每一個參數定義默認值(Deafult Values)。當默認值定義完後,調用這個函數時能夠忽略這個參數。 func printInt(Start:Int=0,end:Int=5) { for i in Start ..< end { print(i) } } printInt() 輸出結果: 0 1 2 3 4 3.可變參數 使用可變參數,能夠是一個參數接受零個或多個指定類型的值。設定一個可變參數須要在參數類型名後添加 「...」。 例:求幾個數的平均值的功能。 func average(num:Double...){ var total : Double = 0 for i in num { total += i } print(total/Double(num.count)) } average(num: 1,2,3,4,5,6) average(num: 10,20,30) 輸出結果: 3.5 20.0 4.輸入-輸出參數 若是開發者想用一個函數來修改參數的值,而且想讓這些變化在函數調用後仍然有效。這時,須要定義輸入-輸入參數。他的定義是經過在參數名前加 inout 關鍵字。 func 函數名(inout 參數名:數據類型, ......){ ...... ...... } 輸入-輸出參數都有一個傳遞給函數的值,將函數修改後,再從函數返回來替換原來的值。 函數(&參數,......) 其中,參數前面加上 & 運算符。 func swapTwoInt( num1: inout Int, num2: inout Int) { let temp = num1 num1 = num2 num2 = temp } var value1 = 6 var value2 = 8 print("交換前") print("value1 = \(value1)") print("value2 = \(value2)") print("交換後") swapTwoInt(num1: &value1,num2: &value2) **函數的返回值** 1. 具備返回值 func 函數名(參數列表)-> 返回值 { return 表達式 } 2. 具備多個返回值 函數有多個返回值 這時候須要用到 元組類型 。 例: func maxVaule(value1:Int,value2:Int,Value3:String,Value4:String) -> (Int,String) { var maxInt = 0 var maxString : String // 判斷哪一個整數最大 if value1<value2 { maxInt = value2 }else{ maxInt = value1 } // 判斷兩個字符串哪一個大 if Value3<Value4 { maxString = Value4 }else{ maxString = Value3 } return (maxInt,maxString) } print(maxVaule(value1: 5, value2: 1, Value3: "Hello", Value4: "Swifts")) 輸出: (5, "Swifts") // 元組 ** 函數類型** 1. 使用函數類型做爲參數 例: // 兩個數相加 func add(a:Int,b:Int) -> Int { return a + b } // 兩個數相乘 func multiply(a:Int,b:Int) -> Int { return a * b } // 輸出結果 func printResult (fun:(Int,Int) -> Int, a:Int, b:Int){ print(fun(a,b)) } printResult(fun: add, a: 4, b: 5) 輸出 : 6 2.使用函數類型做爲返回值類型 func 函數名(參數列表)-> 函數類型 { .... }
** 函數的嵌套 **
一、 嵌套調用 在函數裏調用其餘函數 二、遞歸調用 在調用函數的過程當中調用了該函數自己。