前言
每个函数都有一种类型。可以函数当作其他函数的参数(输入参数,返回参数)
函数的定义可以写在其他函数定义中,实现嵌套函数范围内的功能封装。
函数的定义与调用
定义
func 函数名(形参:形参类型)-> 返回类型
函数名(实参)
函数参数
局部参数、外部参数(#形参名称:形参类型)、默认参数(形参名称:形参类型= 默认值)
swift会自动为默认参数提供外部名字
可变参数:(变量类型…) 来定义,代表可接受一个或者多个值。
常量参数:函数参数默认是常量
变量参数:var 形参名:形参类型
输入输出参数:intout 形参名:形参类型 不能有默认值;
执行完函数时 输入输出参数在函数体中的修改可以被保留
函数类型
类似C语言函数指针、OC的block
使用步骤:
1、定义函数
2、声明函数类型变量 或者常量 var 函数变量名: 函数类型
3、给函数类型变量赋值
嵌套函数
闭包
可以使用常量、变量、inout 类型为参数,不提供默认值
元组也可以作为参数和返回值
{(parameters)->returnType in
statements //闭包的函数体部分由关键字in引入
}
in 关键字 表示闭包的参数和返回值类型定义已经完成,闭包函数体即将开始
单表达式闭包隐式返回(return 可以省略)
参数名称缩写 $0 、$1
闭包采取如下三种形式之一:
全局函数是一个有名字但不会捕获任何值的闭包
嵌套函数是一个有名字并可以捕获其封闭函数域内值的闭包
闭包表达式是一个利用轻量级语法所写的可以捕获其上下文中变量或常量值的没有名字的闭包
运算符函数
>
尾随闭包
增加函数的可读性。尾随闭包是一个书写在函数括号之后的闭包表达式,函数支持将七作为最后一个参数调用。