1.函數的定義
//無參數、無返回值
func function(){
}
//函數參數與返回值
func function(person:String) -> String {
}
//多參數參數,帶返回值
func greet1(person:String,age:String) ->String{
let greeting = "hello:" + person + "age:" + age
return greeting
}
//函數參數,不帶返回值
func function(person:String) {
}
2.帶多個返回值(以元組形式返回)
func minMax(array:[Int]) ->(min:Int,max:Int) {
var currentMin = array[0]
var currentMax = array[0]
for value in array{
if value < currentMin {
currentMin = value
}
else if value > currentMax{
currentMax = value
}
}
return (currentMin,currentMax)
}
3.函數參數標簽和參數名稱
每個函數參數都有一個參數標簽以及一個參數名稱;
參數標簽:修飾參數名稱,方便開發人員更好的讀懂
默認情況下,函數參數使用參數名稱來作為它們的參數標簽。
//帶有參數標簽
func function(name a:String) {
print(a)
}
function(name: "faker") //faker
//忽略參數標簽
func function(_ a:String) {
print(a)
}
function("faker") //faker
4.默認參數值
給參數一個默認值;若沒有傳值的時候,使用默認值;有參數傳遞的時候,用使用實參
func function(a:String = "faker") {
print(a)
}
function() //faker
function22(a: "mata") //mata
5.輸入輸出參數
函數參數默認下是常量。當在方法內需要改變形參的值時,需要使用
inout
關鍵字
func swapTwoInts(_ a: inout Int, _ b: inout Int) {
let temporaryA = a
a = b
b = temporaryA
}
var someInt = 3
var anotherInt = 107
swapTwoInts(&someInt, &anotherInt)
print("\(someInt), \(anotherInt)") // 107, 3
6.函數類型
函數的類型由函數的參數類型和返回類型組成
可以理解為定一個變量,指向函數
func addTwoInts(_ a: Int, _ b: Int) -> Int {
return a + b
}
func multiplyTwoInts(_ a: Int, _ b: Int) -> Int {
return a * b
}
// addTwoInts、multiplyTwoInts的函數類型為:(Int,Int) -> Int
var mathFunction: (Int,Int) ->Int
mathFunction = addTwoInts
print(mathFunction(2,5)) //7
mathFunction = multiplyTwoInts
print(mathFunction(2,5)) //10
//函數類型作為參數類型
func printMathResult(_ mathfunction: (Int,Int) -> Int,_ a:Int,_ b:Int)
{
print(mathfunction(a,b))
}
printMathResult(mathFunction, 3, 4) //12