初始化器中的局部参数标签命名约定

Local parameter label naming convention in initializers

假设我有一个像这样的 class:

class Foo {

    private let userId: String

    init(userId givenUserId: String) {
        userId = givenUserId
    }  
}

当我有像上面这样的初始值设定项(或函数)时,我希望它们的外部参数名称尽可能具有描述性。另一方面,在内部 class 实现中使用相同的名称也很好。但是我必须使用一些局部参数标签,我的方法是在外部参数标签前添加前缀 "given" 。这是解决问题的好方法还是有更好的方法或惯例来解决这个问题?

在 Swift 初始值设定项中,您可以使用与 属性 名称相同的局部标签。使用 self. 表示法,编译器会自动确定将哪一个用于简单赋值。这样,您就可以拥有富有表现力的外部参数,避免同时定义外部和内部参数标签的负担。

class Foo {

    private let userId: String

    init(userId: String) {
        self.userId = userId
    }  
}

为了避免歧义,您可以这样写 class:

class Foo {

    private let userId: String

    init(userId userId: String) {
       self.userId = userId
    }
}

self关键字,会自动取内部变量

如果你想知道如何拥有良好的编码风格,我推荐你:swift-style-guide