Swift函数参数命名

时间:2018-07-31 13:52:39

标签: ios swift

假设有一个功能

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关键字吗?

1 个答案:

答案 0 :(得分:1)

首先。我不确定您在哪里可以看到Swift推荐的东西,但是即使那样,您所做的也不会违反它,因为您在init闭包中使用了self关键字。

第二,没有必要避免在示例中使用self关键字。您使用self关键字是完全有效和可靠的。这更像Java中的this关键字。在Java中如何?

public class Foo {
    Object object;

    Foo(Object object){
        this.object = object;
    }
}

最后,我的看法是,除非您的示例使用相同的名称,否则除非需要使用self关键字。如果您不使用self关键字,则编译器将不满意。该规则将确保您的代码尽可能整洁,因为您可以将self关键字放在很多东西之前,并使它们凌乱。

最后,在这种情况下,实际取决于您。您的两个例子都是好的,但都不是坏习惯。