试图让以下工作:
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
. 所以我尝试let
用var
. 哪个编译。但什么也不做,因为它更新了关联数组的值副本,而不是原始数组本身。至少我认为会发生这种情况。
是否有一种方法可以让我拥有可下标的关联值并set
在适当的时候实现该属性?