函数是可以嵌套的
当我们写一个比较长的函数的时候,我们可以使用函数嵌套的形式,将内部的代码抽取为一个嵌套的函数,这样看起来更加具有调理性
func sumOneTwo()->Int {
var sum = 0
func sumFunc(){
sum = 1 + 2
}
sumFunc()
return sum
}
print(sumOneTwo())
函数sumFunc就是嵌套在sumOneTwo函数中
输出
3
函数作为返回值
func threeTimes() -> ((Int)->Void) {
func times(num:Int){
print(num*3)
}
return times
}
let times = threeTimes()
times(10)
输出
30
作为函数的参数
func chose(numbers:[Int], condation:(Int)->Bool)->[Int]{
var result = [Int]()
for number in numbers {
if condation(number) {
result.append(number)
}
}
return result
}
func biggerThanTen(number:Int)->Bool {
if number > 10 {
return true
}
return false
}
var numbers = [11,40,4,9,12]
print(chose(numbers: numbers, condation: biggerThanTen))
输出
[11, 40, 12]