当前位置: 首页 > 知识库问答 >
问题:

如何在swift中获取枚举的所有值[重复]

臧威
2023-03-14

假设我有以下代码:

enum Suit {
    case Spades, Hearts, Diamonds, Clubs
}

是否有一种方法可以得到下面的数组

[Spades, Hearts, Diamonds, Clubs]

共有1个答案

子车心思
2023-03-14

我不知道有没有办法做到这一点。这是一个很好的问题,希望有人能找到另一种方法,多通用的我。不管怎样,我做了一些事情

这里是枚举:

// SuitCount is the last one, so the total of elements (used) is SuitCount-1
enum Suit: Int {
    case Spades, Hearts, Diamonds, Clubs, SuitCount
}

返回值的函数:

func getValueFromSuitAtIndex(#indexOfElement: Int) -> String {

     var value = ""

     switch indexOfElement {
     case 0:
        value = "Spades"
     case 1:
        value = "Hearts"
     case 2:
        value = "Diamonds"
     case 3:
        value = "Clubs"
     default:
        value = ""
     }   

     return value
}
var suitElements = String[]()
for index in 0...Suit.SuitCount.toRaw()-1 {
    suitElements.append(self.getValueFromSuitAtIndex(indexOfElement: index))
}
// suitElements printed is: [Spades, Hearts, Diamonds, Clubs]
println(suitElements)
 类似资料:
  • 问题内容: 我遇到了这个问题,我不知道需要迭代其实际值的实际类型。 任何想法如何从enumValue中提取其可能的值? 问题答案:

  • 给定类型脚本枚举: 我想在一个数组中得到它的所有值,如下所示: 但当我和 我得到奇怪的数组组成的索引和值: 为什么会出现这种情况?我如何才能只获取值?

  • 问题内容: 如果我有一个带有原始值的枚举: 如何将值转换为字符串?语言中是否可用这种类型名称自省? 类似的东西(此代码将不起作用): 问题答案: 从Xcode 7 beta 5(Swift版本2)开始,您现在可以默认使用来打印类型名称和枚举大小写,或者使用的初始值设定项或字符串插值语法转换为。因此,对于您的示例: 因此,不再需要定义和维护一个方便函数,该函数在每种情况下都可以打开以返回字符串文字。

  • 我使用Enum4库创建enum类,如下所示: 我想在某处打印作为列表。如何实现这一点?

  • 问题内容: 我试图从原始值获取枚举类型: 但是似乎对于带空格的字符串不起作用: 任何建议如何获得它? 问题答案: 太复杂了,只需将原始值直接分配给案例 如果案例名称与原始值匹配,您甚至可以忽略它 在Swift 3+中,所有枚举都是

  • 问题内容: 我有以下列举。 我需要将所有原始值存储为字符串数组(例如)。 我将此方法添加到枚举中。 但我收到以下错误。 找不到类型’GeneratorOf’的初始化程序,该初始化程序接受类型’(()-> _)’的参数列表 有没有更简单,更好或更优雅的方式来做到这一点? 问题答案: 有一个协议: 对于Swift <4.2 不,您无法查询包含的值。看到这篇文章。您必须定义一个列出所有值的数组。还可以在