初始化器中的局部参数标签命名约定
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
假设我有一个像这样的 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