七个Swift中的陷阱以及避免方法
Swift正在完成一个惊人的壮举,它正在改变我们在苹果设备上编程的方式,引入了很多现代范例,例如:函数式编程和相比于OC这种纯面向对象语言更丰富的类型检查。
Swift语言希望通过采用安全的编程模式去帮助开发者避免bug。然而这也会不可避免的产生一些人造的陷阱,他们会在编译器不报错的情况下引入一些Bug。这些陷阱有的已经在Swift book中提到,有一些还没有。
总结:
一、在协议扩展中重写协议中的属性时要仔细核对;
二、在协议扩展中定义的每一个属性,需要在协议中进行声明;
三、不要对导入的第三方协议进行属性扩展,那样可能需要动态调度;
四、如果一个新的属性需要动态调度,避免使用约束性协议扩展;
五、避免把一个有副作用的表达式的结果通过可选链赋值给等号左边的变量;
六、避免在闭包中使用inout参数;
七、避免在柯里化函数中使用inout参数,因为如果你后来将柯里化改为显式的创建闭包,这段代码就会产生错误。
|
|