Swift学习笔记(四) -- 函数

通过学习Swift 4.0,总结一下Swift相对于Objective-C的一些新特征。

函数

  • 函数是一段代码块和代码块名称组合,用于执行特定的任务
  • 使用函数叫”调用(call)”
  • 就像公式一样,使用函数可以提供参数
  • 函数调用结果叫 返回值
  • 函数的类型,包含:参数类型 和 返回值类型
  • 定义一个函数
    1
    2
    3
    4
    5
    6
    7
    8
    9
    func add(a: Int, b: Int) -> Int
    {
    return a+b
    }

    代码解读:
    - 定义一个函数名为:add的函数;
    - 参数为Int类型的a和b;
    - 返回值类型:Int

调用函数:

1
2
3
4
var sum = add(a:4,b:4)
print(sum)

输出结果: sum = 8

  • 定义函数,返回值为元组
    1
    2
    3
    4
    5
    6
    7
    8
    func reqFun() -> (Int,Int){
    return (1,2)
    }

    代码解读:
    - 定义一个函数名为:reqFun的函数;
    - 无传入参数;
    - 返回值类型:元组(Int,Int)

调用函数:

1
2
3
4
5
6
7
var tmp = reqFun()
print(tmp.0)
print(tmp.1)

输出结果:
tmp.0 = 1
tmp.1 = 2

  • 定义函数,参数包含默认值
    1
    2
    3
    4
    5
    6
    7
    8
    9
    func reqFun2(a:Int, b:Int = 2, c:Int) -> Int
    {
    return a+b+c
    }

    代码解读:
    - 定义一个函数名为:reqFun2的函数;
    - 参数为:a,b,c。其中b的默认值为2,可不传;
    - 返回值类型:Int

调用函数:

1
2
3
4
5
6
7
8
9
var tmp = reqFun2(a: 1, c: 3)
var tmp2 = reqFun2(a: 1,b: 3, c: 3)

print(tmp)
print(tmp2)

输出结果:
tmp = 6
tmp2 = 7

  • 定义函数,参数包含函数
    1
    2
    3
    4
    5
    6
    7
    8
    9
    func reqFunc3(a:Int ,b:Int , method:(Int,Int) ->Int) -> Int
    {
    return method(a,b)
    }

    代码解读:
    - 定义一个函数名为:reqFun3的函数;
    - 参数为:a,b,method函数。method函数为2个Int类型参数,返回值Int;
    - 返回值类型:Int

实现method函数

1
2
3
func method(x:Int ,y:Int)->Int{
return x * y
}

调用函数:

1
2
3
4
5
var tmp = reqFunc3(a: 5, b: 2, method: method)
print(tmp)

输出结果:
tmp = 10