我正在使用Swift中的初始化程序,并且想知道为什么在每个变量的名称之前需要self,如下所示:
import UIKit
class Vehicle {
var model:String
var speed:Int
var year:Int
init(model: String, speed: Int, year: Int) {
self.model = "null"
self.speed = 0
self.year = 0000
}
}
但在这样的情况下不需要init,其中init没有参数:
import UIKit
class Vehicle {
var model:String
var speed:Int
var year:Int
init() {
model = "null"
speed = 0
year = 0000
}
}
两种不同的设置之间是否有区别?如果是,那么在每种情况下应该使用哪种?谢谢。
答案 0 :(得分:3)
如果没有self
,Swift应该知道你的意思是实例变量model
而不是同名参数?
只有在外部作用域中具有与变量同名的局部变量(或参数)时,才需要执行此操作。
如果你真的试图使用这些参数(你的代码示例只是忽略它们),这可能会更明显一些。然后你会写一些类似
的东西model = model
speed = speed
year = year
你必须承认看起来有问题。