swift 4.2 官方文档学习笔记(六)- functions

Sellen Wei
2 min readDec 14, 2018

--

fanction也就是函数,在平时工作学习中应该接触的最多,函数的parameter可以很灵活,从objc中的每个parameter都要写明,到swift中可以不写明传入参数的argument label。也可以被当作inout参数来传递,这个在recursion中还是比较常用到的。另外,每个函数都有一个type,类似()->string这种,可以方便的将一个函数当成parameter来传递。

  1. 包含多个返回值的函数,output用元组表示:

2. 关于函数的argument label (可省略,可不省略,可内部外部名称相同,也可以不同)

3. 当我们不需要调用者提供所有的argument的时候,或者有时候argument个数太多,对调用者造成了一定麻烦,比如测试的时候,我们并不关心所有传入的参数,想在invoke的时候省点力气和时间,这时候可以这样声明function,他们就会有一个默认值:

4. Variadic Parameters: 输入类型中包含…可以包括一个或者多个该类型的值,也就是传入一个数组

5. in-out parameter 这个我在开头的地方说过,recursion必须要使用这个形式来声明argument,否则传递的argument不能改写:

6. 每个函数都有自己的函数类型比如(Int, Int)->(Int), 这个类型可以作为传入参数类型,也和以作为返回值类型,但是现在我在工作当中还是很少使用这种用函数类型来作为传递参数的实例,以后可以多多留意

7.那因为swift有这样灵活的应用,可以将一个函数的类型抽象出来,所以可以做一些nested class:

好啦,以上这些就是今天总结的函数相关的学习笔记,接下来一章会学习闭包,最近每天一到两章的速度学习,感觉对平时工作也有很大的帮助,果然语言就是工具!知识就是力量!

--

--