我想创建一个数据类型,它的作用类似于字典,但忽略了值为零的任何键,例如,假设示例:
typealias SpecialDict = Dictionary<String,Int>
let testA: SpecialDict = ["a":1, "b":4, "c":0]
let testB: SpecialDict = ["a":1, "b":4]
testA == testB // should evaluate as true我不确定这样做是否更好:
或者,创建带有固定键列表的字典(即不能添加或移除键,只需更改它们的值)的方法也会有效。
发布于 2015-03-10 15:41:09
我想说最简单的方法是创建您自己的struct,它以您想要的方式运行。我会这样做:
struct MyDict {
private var dictionary = [String: Int]()
subscript(key: String) -> Int? {
get {
return dictionary[key]
}
set {
if newValue! != 0 {
dictionary[key] = newValue
} else {
dictionary.removeValueForKey(key)
}
}
}
}但是请记住,这个结构是而不是字典,所以您必须实现所需的每个函数。
https://stackoverflow.com/questions/28967100
复制相似问题