Swift 1.1语言使用函数类型作为参数类型作为返回值类型Swift 1.1语言快速入门大学霸

 Swift 1.1语言使用函数类型作为参数类型作为返回值类型Swift 1.1语言快速入门大学霸

Swift语言快速入门v3.0

Swift语言快速入门v3.0

7.6.2  使用函数类型作为参数类型开发者可以使用函数类型作为另一个函数的参数类型。例如以下代码,它的功能是让个数进行相加或者相乘,然后输出。代码如下 Swift 1.1语言使用函数类型作为参数类型作为返回值类型Swift 1.1语言快速入门大学霸:

import Foundation

//两数相加

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){

println(fun(a,b))

}

printresult(add, 3, 2)

printresult(multiply, 3, 2)

在此代码中定义了三个函数。第三个函数printresult中,有三个参数:第一个参数为fun,类型为(Int,Int)->Int,开发者可以传入任何这种类型的函数;第二个参数和第三个参数分别为a和b,它们的类型都是Int型,这两个值是函数的输入值。当第一次调用printresult函数时,它传入了add函数和3、5两个整数。这时,它又会调用函数add,将3、5作为函数add的输入值,并输出结果。第二此调用也类似,printresult会调用multiply函数。最后的运行结果如下所示:

5

6

Program ended with exit code: 0

7.6.3  使用函数类型作为返回值类型 Swift 1.1语言使用函数类型作为参数类型作为返回值类型Swift 1.1语言快速入门大学霸

函数类型不仅可以被用作参数外,还可以被用作返回值类型。此时需要在->后面写入一个完整的函数类型,其语法形式如下:

func 函数名(参数列表) -> 函数类型 {

}

【示例7-17】以下代码输出通过给定的值,出现一系列的值;如果给定的值大于0输出从这个数开始到0之间的数;如果是负数,一直输出比这个是小1的数。代码如下 Swift 1.1语言使用函数类型作为参数类型作为返回值类型Swift 1.1语言快速入门大学霸:

import Foundation

//返回一个比输入值大1得值 Swift 1.1语言使用函数类型作为参数类型作为返回值类型Swift 1.1语言快速入门大学霸

func stepForward(input: Int) -> Int {

return input + 1

}

//返回一个比输入值小1得值

func stepBackward(input: Int) -> Int {

return input – 1

}

//选择返回哪个函数

func chooseStepFunction(backwards: Bool) -> (Int) -> Int {

return backwards ? stepBackward : stepForward

}

var currentValue = 5

let moveNearerToZero = chooseStepFunction(currentValue>0)

while currentValue != 0 {

println(“\(currentValue)… “)

 currentValue = moveNearerToZero(currentValue)

}

在此代码中定义了3个函数。第三个函数chooseStepFunction的返回值类型是(Int)->Int。运行结果如下所示 Swift 1.1语言使用函数类型作为参数类型作为返回值类型Swift 1.1语言快速入门大学霸:

5…

4…

3…

2…

1…

Program ended with exit code: 0

Swift 1.1语言使用函数类型作为参数类型作为返回值类型Swift 1.1语言快速入门大学霸

Comments are closed.