假设有一个功能
func set(object: Class) { }
我们有一个课程
class Foo {
var object: Class?
func set(object: Class) {
self.object = object
}
}
问题是如何避免使用self.object = object
行代码,因为Swift建议除了使用带有self
引用的闭包之外,不要使用self
关键字-确实提高了代码的可读性。目前,我实现了
class Foo {
var object: Class?
func set(_object: Class) {
object = _object
}
}
但是还有其他常用方法(我找不到)吗?
由于问题尚不清楚,请举另一个例子
class Foo {
let object: Class
init(object: Class) {
self.object = object
}
}
还有其他通用命名方式可以避免使用self
关键字吗?
答案 0 :(得分:1)
首先。我不确定您在哪里可以看到Swift推荐的东西,但是即使那样,您所做的也不会违反它,因为您在init闭包中使用了self关键字。
第二,没有必要避免在示例中使用self关键字。您使用self关键字是完全有效和可靠的。这更像Java中的this
关键字。在Java中如何?
public class Foo {
Object object;
Foo(Object object){
this.object = object;
}
}
最后,我的看法是,除非您的示例使用相同的名称,否则除非需要使用self关键字。如果您不使用self关键字,则编译器将不满意。该规则将确保您的代码尽可能整洁,因为您可以将self关键字放在很多东西之前,并使它们凌乱。
最后,在这种情况下,实际取决于您。您的两个例子都是好的,但都不是坏习惯。