如何实现枚举关联值的快速下标设置器

特拉维斯·格里格斯

尝试使以下各项起作用:

enum Foobar {
    case values([Int])
    case singleThing(Double)

    subscript(index:Int) -> Int? {
        get {
            switch self {
            case .values (let numbers):
                return numbers[index]
            default:
                return nil
            }
        }
        set {
            switch self {
            case .values (let numbers):
                numbers[index] = newValue!
            default:
                break
            }
        }
    }
}

上面的代码无法编译。它抱怨说,给numbers我分配时,我正在更新let所以,我想更换该letvar哪个编译。但是什么也不做,因为它会更新关联数组的值副本,而不是原始数组本身。至少那是我认为的情况。

有没有一种方法可以让我拥有可订阅的关联值并set在适当的时候实现该属性?

马丁·R

case .values (let numbers):
    numbers[index] = newValue!

numbers绑定到当前关联值局部变量即使使用var numbers,您也只能修改此变量,而不能修改枚举实例。

case .values (var numbers):
    numbers[index] = newValue!
    self = .values(numbers)

应该做你期望的。(但是请注意,使用下标setternil会导致程序崩溃。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

快速枚举中关联值和原始值之间的差异

来自分类Dev

如何在JavaScript中实现具有关联值的类似Swift的枚举?

来自分类Dev

关联值是引用类型时的快速枚举大小

来自分类Dev

如何在pyalsaaudio中设置混合器枚举值?

来自分类Dev

比较Swift枚举,无论关联值如何

来自分类Dev

Swift下标实现可以设置元组值吗?

来自分类Dev

如何比较没有关联值的关联枚举

来自分类Dev

如何快速实现关键字关联功能?

来自分类Dev

更改关联枚举的值

来自分类Dev

NSMutableArray如何在快速枚举中实现如此高的速度

来自分类Dev

快速设置值以在我的自定义类中枚举

来自分类Dev

设置未知类型的枚举器对象的值

来自分类Dev

在快速枚举中,何时使用原始值以及何时使用关联值

来自分类Dev

如何快速实现元组的命名值?

来自分类Dev

带有关联值的快速枚举中的等式运算符重载

来自分类Dev

如何设置代理对象的可下标属性的元素值

来自分类Dev

如何在Swift枚举中打印关联值?

来自分类Dev

Ruby:如何设置枚举器的状态?

来自分类Dev

Android:如何从已知枚举设置gradle值

来自分类Dev

如何设置和检查无值枚举?

来自分类Dev

如何设置和检查无值枚举?

来自分类Dev

如何将字符串值设置为枚举器

来自分类Dev

枚举:如何为枚举类型的类成员设置值?

来自分类Dev

如何将NSNumber与快速枚举值进行比较?

来自分类Dev

如何快速添加或减去两个枚举值

来自分类Dev

实现枚举值

来自分类Dev

Swift枚举-约束关联值

来自分类Dev

绑定到枚举的关联值

来自分类Dev

服务器返回空值时,如何快速将字符串设置为Null?

Related 相关文章

热门标签

归档