Properties 在Swift init中使用self和不使用self的区别

Properties 在Swift init中使用self和不使用self的区别,properties,swift,initialization,self,convention,Properties,Swift,Initialization,Self,Convention,我注意到在Swift初始值设定项中初始化属性可以使用以下两种方法: self.property = 1 及 这两者有什么区别吗?如果没有,是否有一种约定更倾向于一个属性而不是另一个属性?在第一种情况下,您明确表示它是类/结构属性,而在第二种情况下,它是隐式的。但是有一个很大的区别:如果有一个具有相同名称的局部变量(例如传递给init的参数),它将优先并隐藏class/struct属性 作为一种偏好,我总是喜欢通过使用self将其明确化。此外,通过这样做,我避免了当我认为我正在访问class属性

我注意到在Swift初始值设定项中初始化属性可以使用以下两种方法:

self.property = 1


这两者有什么区别吗?如果没有,是否有一种约定更倾向于一个属性而不是另一个属性?

在第一种情况下,您明确表示它是类/结构属性,而在第二种情况下,它是隐式的。但是有一个很大的区别:如果有一个具有相同名称的局部变量(例如传递给init的参数),它将优先并隐藏class/struct属性

作为一种偏好,我总是喜欢通过使用
self
将其明确化。此外,通过这样做,我避免了当我认为我正在访问class属性时发生的常见错误,而我使用的是局部变量或函数参数

property = 1