swift基础语法(18- 函数类型)

函数类型:
类似于C语言的指向函数的指针
类似于OC语言的block
函数类型是由函数的参数类型和返回值类型组成的
 
这两个函数的类型是 (Int, Int) -> Int
func sum(a: Int, b: Int) ->Int
{
    return a + b;
}

func sub(a: Int, b: Int) ->Int
{
    return a - b;
}
 
可以利用函数类型定义函数变量和常量
var funcP:(Int, Int) -> Int = sum
funcP = sub
print(funcP(10, 20))
输出结果: -10
 
 
 
func sum(a: Int, b: Int) ->Int
{
    return a + b;
}

func sub(a: Int, b: Int) ->Int
{
    return a - b;
}
 
函数类型可以作为函数的参数
func calFunc(a: Int, b: Int ,Option:(Int, Int) -> Int) ->Int
{
    return Option(a, b)
}
print(calFunc(10, b: 20, Option: sum))
print(calFunc(10, b: 20, Option: sub))
输出结果:
30
-10
 
 
函数类型可以作为函数返回值
func max(a: Int, b: Int) -> Int
{
    return a > b ? a : b
}
func min(a: Int, b: Int) -> Int
{
    return a < b ? a : b
}

func chooseFunc(getMax:Bool) -> (Int , Int) -> Int
{
    return getMax ? max : min
}

var funcP2:(Int , Int) -> Int = chooseFunc(false)
print(funcP2(10, 20))
输出结果: 10
 
 
 
 
 
posted @ 2016-04-11 14:43  ChunFuYang  阅读(163)  评论(0编辑  收藏  举报