Swift中安全优雅删除自定义数组指定元素及追加元素的方法
嘿,我来帮你梳理一下这两个操作的最佳实现方式,都是Swift里比较优雅且安全的写法:
一、安全优雅地删除数组中firstItem为.example1的元素
这里分两种场景,你可以根据需求选择:
场景1:删除所有匹配的元素
如果你想把数组里所有firstItem为.example1的元素都删掉,用Swift 4.2+新增的removeAll(where:)方法是最简洁安全的——它会自动遍历数组,过滤并删除符合条件的元素,完全不用手动处理索引,避免越界崩溃:
customArray.removeAll { $0.firstItem == .example1 }
场景2:只删除第一个匹配的元素
如果只需要删掉第一个符合条件的元素,就得先找到它的索引,再执行删除。这里一定要用可选值解包来保证安全,避免因为找不到元素而崩溃:
if let targetIndex = customArray.firstIndex(where: { $0.firstItem == .example1 }) { customArray.remove(at: targetIndex) }
firstIndex(where:)会返回第一个匹配元素的索引(可选值),只有当索引存在时,if let才会执行删除操作,非常安全。
二、向数组末尾添加元素
这个操作很直观,Swift提供了几种灵活的写法:
添加单个元素
最常用的就是append(_:)方法,直接把新元素加到数组末尾:
// 先创建一个CustomItem实例(假设你的类有自动生成的成员初始化器) let newCustomItem = CustomItem(firstItem: .example2, data: "你的数据内容") customArray.append(newCustomItem) // 也可以用+=操作符,效果和append完全一样,写法更简洁: customArray += [newCustomItem]
添加多个元素
如果要一次性加多个元素,用append(contentsOf:)方法效率更高:
let newItems = [ CustomItem(firstItem: .example1, data: 123), CustomItem(firstItem: .example2, data: true) ] customArray.append(contentsOf: newItems)
内容的提问来源于stack exchange,提问作者jamesCode
相关产品推荐
相关产品推荐

