我必须传递一个枚举数组作为函数参数,大多数时候我必须传递枚举的每个案例。是否有一种速记方法可以包含所有内容,而不必[.NFL, .NBA, .NHL, .MLB, .NCAAM, .NCAAF]
每次都通过?我可以制作和所有财产,以便我可以通过.all
包括所有情况的财产吗?
enum LSLeague: String {
case NFL = "NFL"
case NBA = "NBA"
case NHL = "NHL"
case MLB = "MLB"
case NCAAM = "NCAAM"
case NCAAF = "NCAAF"
}
您可以在枚举类型上使用 .allCases。
因此,根据您的用例,您可能仍然需要做一些工作,但是如果您使用,您可以迭代枚举中的每个元素:
for league in LSLeague.allCases {
//code here
}
编辑:@aheze 有一个很好的观点,我只是想添加到这个答案中。他说,“确保枚举也符合 CaseIterable”
所以,还要确保你改变你必须的枚举:
enum LSLeague: String: CaseIterable {
case NFL = "NFL"
case NBA = "NBA"
case NHL = "NHL"
case MLB = "MLB"
case NCAAM = "NCAAM"
case NCAAF = "NCAAF"
}
如果你能够使用这种技术。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句