arrays - Swift 枚举作为数组的索引

标签 arrays swift enums

如何在 Swift 中使用枚举对数组进行简单索引?

我是一名试图理解 Swift 的 C 程序员。这令人费解。

var  arr: [String] = ["2.16", "4.3", "0.101"]

enum Ptr: Int {
    case first = 0
    case second = 1
    case third = 2    
}

var ix = Int(Ptr.first)
print (ix)
let e = Double (arr[ix])

`

我希望 Ptr.first 会产生一个 0 整数,我可以将其作为数组 arr 的索引。

最佳答案

为什么它不起作用是因为您的枚举中的所有情况(第一、第二、第三)本质上都是 Ptr 类型(您的枚举类型)。因此,为了获得 0,您需要访问案例的 rawValue 属性,它是一个 Int:

var ix = Ptr.first.rawValue //accessing the case's rawValue property
print (ix)
let e = Double (arr[ix])

希望对您有所帮助!

关于arrays - Swift 枚举作为数组的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56918262/

相关文章:

ios - 更改 Carthage Swift 版本

swift - 快速计算结构内的实例数

swift - 使 Enum 符合 Codable 并映射到模型

VB.NET 创建一个带有可选输入的类

ios - Rx swift : Why does flatMapLatest never execute onCompleted()?

c++ - Enum 不是一个 constexpr?

c - 简单的 C 问题 : compare first char of a char array

java - "Object[] x"和 "Object x[]"之间有什么区别吗?

ruby - 为什么在 Array 已经是 Enumerable 时使用 Array#to_enum?

java - 在java中打印使用long[]构建的数组