Разница между static enum и static struct

Скажем, что перечисление или структура являются статическими, если они не хранят никаких значений в экземплярах. Есть ли разница между static enum и static struct?

enum StaticEnum {
    static var someStaticVar = 0
    static func someStaticFunc() {}
}

struct StaticStruct {
    static var someStaticVar = 0
    static func someStaticFunc() {}
}

Ответ 1

Основное отличие состоит в том, что вы не можете создать перечисление без случаев. Поэтому, если вы просто ищете что-то, чтобы служить пространством имен для некоторых статических членов, перечисление предпочтительнее, так как вы не можете случайно создать экземпляр.

let e = StaticEnum() // error: 'StaticEnum' cannot be constructed because it has no accessible initializers
let s = StaticStruct() // Useless, but legal