在Swift中,您可以创建属于类型而不是类型实例的属性和方法。这有助于通过存储共享数据来有意义地组织数据。
Swift将这些共享属性称为“静态属性”,而您只需使用static
关键字即可创建一个。完成后,您可以使用类型的全名来访问属性。这是一个简单的示例:
struct TaylorFan {
static var favoriteSong = "Look What You Made Me Do"
var name: String
var age: Int
}
let fan = TaylorFan(name: "James", age: 25)
print(TaylorFan.favoriteSong)
因此,泰勒·斯威夫特(Taylor Swift)的粉丝有名字和年龄,但他们都喜欢同一首歌。
因为静态方法属于该结构体本身而不是该结构体的实例,所以您不能使用它来访问该结构中的任何非静态属性。
即在本例中,静态方法只能调用 favoriteSong
,其他属性值无法调用:
struct TaylorFan {
static var favoriteSong = "Look What You Made Me Do"
var name: String
var age: Int
static func singFavoriteSong() {
print(favoriteSong)
}
}
let fan = TaylorFan(name: "James", age: 25)
TaylorFan.singFavoriteSong()
本文来自Hacking with Swift 给 swift 初学者的入门课程 Swift for Complete Beginners 的 Static properties and methods