场景:如果开启了编译器优化(Release模式默认会开启优化),编译器自动将某些函数变成内联函数
调用方式如下:
哪些函数不能被内联?
1. 函数体过长
2. 包含递归调用
3. 包含动态派发(变量指向的对象是随时可能变化的,调用是才能决定具体调用的是哪个)
class ManPerson{
func test() {
}
}
class Strudent : ManPerson{
override func test(){
}
}
class Teacher : ManPerson{
override func test() {
}
}
var man:ManPerson = Strudent()
man = Teacher()
man.test()