swift函数的派发机制有三类:static直接派发(静态)派发、table函数派发,message消息派发。
直接派发也称为静态派发,指令集少,还会进行编译优化(函数内联)
2.函数派发是实现动态行为最常见的方式,通过函数表里面的数组来存储类声明的每个函数指针,称为vitual table, swift里叫witness table
3.消息派发其实就是oc那套消息发送了,他是cocoa的基石。
1.结构体属于值类型、类属于引用类型
2.值类型赋值给let var或函数传参数的时候全是深拷贝、引用类型这是拷贝内容指针浅拷贝。
3.结构体不能继承、类可以。
4.结构体的方法修改属性时候需要用@mutating修饰
5.结构体初始化的时候必须给属性赋值类决定结构体内存布局。
6.结构体声明属性时候不需要赋值,类声明属性的时候需要或者包装成Optional
7.required关键字只支持Class、Class可以用 static和 Class 修饰静态方法,结构体只能用Static
写时复制,在复制时,复制对象和原对象实际上在内存同一个位置,当且仅当修改复制对象是,才对在内存中创建新的地址保存该对象,这样能提升性能,Struct,String、Array、Dictionary、Set 都采用了这个技术