是否可以观察到添加到Set数据结构中的值?
我正在努力实现的目标:
var storedStrings = Set<String>() {
didSet (value) {
// where value is a string that has been added to the Set
}
}
Run Code Online (Sandbox Code Playgroud)
示例:
storedStrings.insert("hello")
didSet 被调用,因为已添加新值。
storedString.insert("world")
didSet 再次调用。
storedString.insert("hello")
didSet 未调用,因为该集合已包含字符串“hello”
这可能有点贵,但您仍然可以执行以下操作:
var storedStrings = Set<String>() {
didSet {
if storedStrings != oldValue {
print("storedStrings has changed")
let added = storedStrings.subtracting(oldValue)
print("added values: \(added)")
let removed = oldValue.subtracting(storedStrings)
print("removed values: \(removed)")
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
445 次 |
| 最近记录: |