1.函数的定义和调用
定义一个函数时,可以定义一个或多个有名字和类型的值,作为函数的输入,称为参数,也可以定义某种类型的值作为函数执行结束时的输出,称为返回类型.
每一个函数都有函数名,在为一个函数起名字时,最好结合此函数的实现时间让其达到顾名思义的效果.
//代码案例
func greet(person: String) -> String {
let greeting = "Hello, " + person + "!"
return greeting
}
/*上面这个函数的函数名字是: greet(person:) , func 是这个函数的前缀 ,
-> 后面接着的是表示函数需要返回一个 String类型的值
如果要使用此函数,必须为其传入一个String类型的实参
在函数运行的最后需要返回一个String类型的返回值*/
2.多重返回值
Swift中,我们可以使用元组来实现在一个函数中返回多个值
func minMax(array: [Int]) -> (min: Int, max: Int) {
var currentMin = array[0]
var currentMax = array[0]
for value in array[1..<array.count] {
if value < currentMin {
currentMin = value
} else if value > currentMax {
currentMax = value
}
}
return (currentMin, currentMax)
}
4 inout 关键字
inout关键字就好比OC中的传入一个参数的指正一样
//定义一个函数,其传入参数用inout 标记
func swapTwoInts ( _ a : inout Int , _ b: inout Int ) -> (){
let c = a
a = b
b = c
}
//假设在程序某处调用了此函数
let a = 1
let b = 2
swapTwoInts(a,b)
printf(a,b) //输出 2 , 1
5 嵌套函数
//一般情况下我们都会把函数定义在全局域内(全局域就是每一个文件的最外层的 { } 之间的位置 )
//但是其实Swift其实允许我们在函数的内部再定义一个函数,并且在这个局部函数定义的新函数可以作为原函数的返回值
//我们称这种写法叫做:嵌套函数
func dmeo1 ( condition:Bool ) -> (Int) - (Int) {
func dmeo2 (input: Int) -> Int { return input + 1 }
func dmeo3 (input: Int) -> Int { return input - 1 }
return condition ? stepBackward : stepForward
}
/*此函数的意思是 demo1 函数通过其传入的条件参数:condition
进行判断来决定返回另外一个函数,
但是此函数必须是一个指定的格式 : (Int) -> (Int) */
网友评论