【问题标题】:Swift: Hash value of enum is getting random numbersSwift:枚举的哈希值正在获取随机数
【发布时间】:2018-09-27 20:17:43
【问题描述】:

我有以下枚举:

enum MyEnum {
    case One
    case Two
    case Three
}

但是当我打印这一行时:

print("This is the hash value of One \(MyEnum.One.hashValue)")

我得到以下输出:

This is the hash value of One -7827947590157343570

如果我重新运行我得到的代码:

This is the hash value of One 7980945707037922449

我应该得到这样的东西: 这是One 0的哈希值

我的问题是为什么我得到随机数?

非常感谢您的帮助。

【问题讨论】:

    标签: enums xcode10 swift4.2


    【解决方案1】:

    这个问题的答案有据可查hashValue

    简短的回答是这是正常行为。

    不保证哈希值在不同的执行中是相等的 你的程序。不要保存哈希值以供将来使用 执行

    我应该得到这样的东西吗?

    This is the hash value of One 0
    

    没有。 HashValueRawValue 不同。如果您希望您的枚举案例有一个从 0 开始的 rawValue,您需要将您的枚举类型声明为 Int。顺便说一句,以小写字母开头的枚举案例命名是 Swift 命名约定:

    enum TestEnum: Int {
        case one
        case two
        case three
    }
    

    TestEnum.one.rawValue  // 0
    TestEnum.two.rawValue  // 1
    TestEnum.three.rawValue  // 2
    

    【讨论】:

      猜你喜欢
      • 2011-05-02
      • 1970-01-01
      • 2014-11-22
      • 2013-06-17
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 2023-01-04
      • 2018-07-05
      相关资源
      最近更新 更多