我有一个School结构:
public structure School {
...
}
Run Code Online (Sandbox Code Playgroud)
然后,我有一个扩展名,我在其中声明一个静态枚举:
extension School {
// Compiler error: Declaration cannot be marked 'static'
static enum Level: String {
case Middle = "middle"
}
}
Run Code Online (Sandbox Code Playgroud)
但是我在上面的评论中提到了编译器错误,如何在扩展中声明静态枚举呢?
An enum是一种类型,因此不能标记为静态.即使您enum在类中声明了一个类,它也可以通过类类型而不是通过实例来访问.在Swift中,static关键字可用于标记类型属性,但由于enum它本身是一个类型,因此它不能是属性,因此无法标记static.
struct School {
}
extension School {
enum Level: String {
case Middle = "middle"
}
}
Run Code Online (Sandbox Code Playgroud)
您可以enum通过School类型访问,不需要创建实例.
School.Level.Middle
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
543 次 |
| 最近记录: |