【发布时间】:2021-09-25 07:31:06
【问题描述】:
我正在开发一个使用 Enum 的 Swift 应用程序。但是,这个 Enum 会有一堆案例。也许 1,000 甚至更多。
代码
enum Name: Int, CaseIterable {
case name1
case name2
case name3
// Many more...
var string: String {
switch self {
case name1: return "Name 1"
case name2: return "Name 2"
case name3: return "Name 3"
// Many more...
}
}
}
问题: 包含 1,000 多个案例的 Enum 是否有效?或者会不会有问题?哪种其他数据结构最适合这种情况?
问题 2: Enum 还计算了带有 Switch-Statements 的属性。超过 1,000 个案例的 Switch-Statement 有什么问题吗?
非常感谢您的帮助!
【问题讨论】:
-
请提供更多背景信息 - 您需要使用的案例/数据类型。在没有更多信息的情况下,不清楚你想用这个做什么。
-
@TarunTyagi 它只是不同药物的枚举,没什么特别的。它还包含一些计算属性,其中包含 switch 语句。
-
您通常使用枚举来表示属于同一组的有限数量的元素。对我来说,药物更像是一个无限(不断增长)的集合,所以数组、字典或集合可能更合适。即使这个组是有限的,我认为 1000 对很多人来说也是一种方式,并且给你的代码很难理解和维护。您当然可以将它们分成更小的组,每个组都有一个枚举。
-
@JoakimDanielson 感谢您的详细回答。实际上,名字的数量是巨大的,但也是有限的。用户无法添加或删除名称。你说得对,1000 个案例的枚举很难阅读,但是具有 1000 个元素的列表或字典也不容易阅读?
-
1000 个元素将成为维护的噩梦。你是如何获得价值的?您是否正在输入它们,从网络呼叫中获取它们。有很多方法可以处理大量项目,包括拥有自己的属性,但将它们全部放在一个枚举中可能是错误的方法。
标签: ios swift iphone enums switch-statement