关于 OC 里面这个函数的使用方法 [array removeObject:"小明"] 在 Swift 里面数组里找不到, 在 Swift 数组我也想这么用.
去 stackoverflow 上看了一下 https://stackoverflow.com/questions/24938948/array-extension-to-remove-object-by-value
需要区分对象是引用还是拷贝, 把对象 A 拷贝一份生成副本B1, A 和 B1是两个对象, 就算他们拥有的东西一模一样, 或者创建一个新对象 B2,程序猿自己把 B2的所有东西做的和 A 一模一样, 那就更简单了, 当然是两个对象, 因为 B2是你自己弄出来的, 就算B2和 A 一模一样.
在ViewController里面做这样的实验
通用.png 特殊.png删除数组里面第一个和指定元素相同的方法
extension Array where Element: Equatable {
// Remove first collection element that is equal to the given `object`:
mutating func remove(object: Element) {
if let index = index(of: object) {
remove(at: index)
}
}
}
删除数组里面相同的所有元素
extension Array where Element: Equatable {
// Remove all collection element that is equal to the given `object`:
mutating func removeAllSame(object: Element) {
for _ in 0..<self.count {
if let index = index(of: object) {
remove(at: index)
}
}
}
}
网友评论