代码之家  ›  专栏  ›  技术社区  ›  JuicyFruit

Swift函数参数命名

  •  1
  • JuicyFruit  · 技术社区  · 8 年前

    假设有一个函数

    func set(object: Class) { }
    

    我们有一个班

    class Foo {
        var object: Class?
        func set(object: Class) { 
            self.object = object
        }
    }
    

    问题是如何避免 self.object = object 代码行,因为swift建议不要使用 self 关键字之外的闭包 自己 引用——它确实提高了代码的可读性。目前我是这样做的

    class Foo {
        var object: Class?
        func set(_object: Class) { 
            object = _object
        }
    }
    

    但是有没有其他常见的方法(我找不到)?

    编辑

    由于问题不清楚,另一个例子

    class Foo {
        let object: Class
        init(object: Class) { 
            self.object = object
        }
    }
    

    有没有其他常见的命名方法可以避免 自己 关键字使用?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Fangming    8 年前

    第一。我不确定您在哪里看到了这个快速推荐,但即使这样,您所做的也不会违反它,因为您在init闭包中使用了self关键字。

    第二,在您的示例中不需要避免使用self关键字。您使用的self关键字是完全有效和可靠的。这就像 this 关键字在Java中是否更有意义。这个在Java中怎么样?

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

    最后,我的看法是避免使用self关键字,除非像您的示例那样需要它,因为您具有相同的命名。如果您不使用self关键字,编译器将不高兴。这条规则将确保您的代码尽可能干净,因为您可以将self关键字放在许多事情前面,并使它们变得混乱。

    总之,在这种情况下,这真的取决于你。你的两个例子都是好的,没有一个是坏的。