我想更好地掌握self
的使用。使用self
基本上只是輸入類名的一個快捷方式?例如,在下面的代碼中,如果我使用self
它是否指代Tank2
類?例如,它基本上是輸入Tank2.bonusDamage
的捷徑嗎?我不明白自己所指的是什麼「當前實例」。我什麼時候使用自己的財產?
我不太理解它,因爲我注意到,例如,這兩個頂部的代碼片段返回完全相同的東西。
//SNIPPET 1:
var damage: Double {
return baseDamage + Tank2.bonusDamage
}
//SNIPPET 2:
var damage: Double {
return self.baseDamage + Tank2.bonusDamage
}
。
class Tank2 {
class var bonusDamage: Double {
return Double(Upgrade.level) * 2.5
}
let baseDamage = 10.0
var damage: Double {
return baseDamage + Tank2.bonusDamage
}
class func upgrade() {
Upgrade.level += 1
}
struct Upgrade{
static var level = 0
}
}
'self'用於在界面中使用'@property annotation'調用類的定義屬性,但是您也可以通過添加'_'前綴來訪問該屬性,或者,如果它的靜態屬性可以訪問它通過Classname而不是'self'。除此之外,任何聲明的事物都可以在沒有自我的情況下被訪問。如果你將你的財產綜合到課堂上,那麼你不需要'self'來訪問它。 – iphonic 2015-04-03 05:16:56