Swift中static和class函数/属性有什么区别?
大家好!我正在学习Swift,但一直无法理解在类中声明函数或属性时,关键字`static`和`class`之间的区别。文档中说两者都属于类型本身,而不是实例,但区别在哪里呢?
例如,我有这样一段代码:
```swift
class MyClass {
static var staticProperty = "静态属性"
class var classProperty: String {
return "类属性"
}
static func staticMethod() {
print("静态方法")
}
class func classMethod() {
print("类方法")
}
}
```
我看到`static`和`class`都可以在不创建类实例的情况下调用方法:`MyClass.staticMethod()`和`MyClass.classMethod()`。但为什么会有两个不同的关键字呢?在什么情况下应该使用`static`,什么情况下使用`class`?
特别让我困惑的是,在结构体和枚举中只能使用`static`,而在类中