假设我有一个这样的类:
class Foo {
private let userId: String
init(userId givenUserId: String) {
userId = givenUserId
}
}
当我有类似上面的初始化器(或函数)时,设置一些内部变量,我喜欢它们的外部参数名称尽可能具有描述性。另一方面,在内部类实现中使用相同的名称也是很好的。但是我必须使用一些本地参数标签,我这样做是通过在外部参数标签之前添加前缀“given”。这是一个很好的方法吗?还是有更好的方法或惯例来解决这个问题?
答案 0 :(得分:4)
在Swift初始化程序中,您可以使用与属性名称相同的本地标签。使用self.
表示法,编译器会自动确定哪一个用于简单分配。这样,您就可以拥有富有表现力的外部参数,并避免定义外部和内部参数标签的负担。
class Foo {
private let userId: String
init(userId: String) {
self.userId = userId
}
}
答案 1 :(得分:1)
为了避免含糊不清,你可以这样编写你的课程:
class Foo {
private let userId: String
init(userId userId: String) {
self.userId = userId
}
}
self关键字,将自动采用内部变量。
如果您想要了解如何获得良好的编码风格,我建议您:swift-style-guide