函数重载+内联函数+函数类型+嵌套函数+类型起别名
2020-09-03 本文已影响0人
梁森的简书
函数重载
1.函数名相同
2.参数个数不同|参数类型不同|参数标签不同
注意:返回值类型和函数重载无关,我们不用看返回值类型
内联函数
将函数调用展开成函数体
哪些函数不会被内联?
1.函数体比较长
2.包含递归调用
3.包含动态派发
如下代码
func test() {
print("test")
}
test()
会直接调用print("test"),这样就减少了函数调用开销,不用再开辟回收test函数的栈空间了。
(联想:Dart中的箭头函数)
函数类型
每一个函数都是有类型的,函数类型由形式参数类型、返回值类型组成
1.函数类型可作为函数参数
如:

2.函数类型可作为函数返回值
如:

嵌套函数
将函数定义在函数内部

类型起别名
typealias
