在使用swift之后,它破坏了我对静态变量和常量的看法。
为什么swift不允许我们在其他方法中调用静态变量和常量?
例如:
class Aa {
static let name = "Aario"
func echo() {
print(name) // Error!
}
}
先生。 ogres告诉我使用dynamicType
。
class Aa {
static var name = "Aario"
func echo() {
print(self.dynamicType.name)
}
}
let a = Aa()
a.dynamicType.name = "Aario Ai"
a.echo() // it works!!!
有效!那么我为什么要使用dynamicType来调用静态变量?
最后,答案是:
class Aa {
static var name = "Static Variable"
var name = "Member Variable"
func echo() {
print(self.dynamicType.name) // Static Variable
print(Aa.name) // Static Variable
print(name) // Member Variable
}
}
let a = Aa()
a.dynamicType.name = "Aario Ai"
Aa.name = "Static: Aario"
a.name = "Member: Aario"
a.echo() // it works!!!
与其他语言完全不同。