Есть ли причина, по которой Apple предпочитает использовать structs over enums в демонстрации Lister для объявления ключей для сериализации? Могут ли быть некоторые преимущества?
Например:
private struct SerializationKeys {
static let text = "text"
static let uuid = "uuid"
static let completed = "completed"
...
//duplicated key!
static let descriptionText = "text"
}
Здесь у нас могут быть потенциальные дубликаты для ключей. Это не большой вопрос для небольших объектов (не забудьте copy/paste:)), но для больших объектов с десятками полей это может быть реальной проблемой.
С перечислением у нас нет такой проблемы:
private enum SerializationKeys : String {
case text = "text"
case uuid = "uuid"
case completed = "completed"
//...
case descriptionText = "text"
//here we have compiler warning: Raw value for enum case is not unique
}
Будем рады услышать некоторые мысли об этом.