协议
Range
RangeReplaceableCollection
支持用另一个集合的元素替换任意子范围元素的集合。
声明
protocol RangeReplaceableCollection<Element> : Collection where Self.SubSequence : RangeReplaceableCollection
概述
Range-replaceable 集合提供插入和删除元素的操作。例如,您可以通过调用 RangeReplaceableCollection
协议定义的任何插入或附加操作将元素添加到字符串数组。
var bugs = ["Aphid", "Damselfly"]
bugs.append("Earwig")
bugs.insert(contentsOf: ["Bumblebee", "Cicada"], at: 1)
print(bugs)
// Prints "["Aphid", "Bumblebee", "Cicada", "Damselfly", "Earwig"]"
同样,RangeReplaceableCollection
类型可以使用单个操作删除一个或多个元素。
bugs.removeLast()
bugs.removeSubrange(1...2)
print(bugs)
// Prints "["Aphid", "Damselfly"]"
bugs.removeAll()
print(bugs)
// Prints "[]"
最后,使用同名的replaceSubrange(_:with:)
方法将元素的子范围替换为另一个集合的内容。在这里,整数数组中间的三个元素被Repeated<Int>
实例的五个元素替换。
var nums = [10, 20, 30, 40, 50]
nums.replaceSubrange(1...3, with: repeatElement(1, count: 5))
print(nums)
// Prints "[10, 1, 1, 1, 1, 1, 50]"
符合RangeReplaceableCollection 协议
要将RangeReplaceableCollection
一致性添加到您的自定义集合,请添加一个空初始化程序和replaceSubrange(_:with:)
方法到您的自定义类型。 RangeReplaceableCollection
使用此初始化程序和方法提供所有其他方法的默认实现。例如,removeSubrange(_:)
方法是通过调用replaceSubrange(_:with:)
来实现的,其中newElements
参数的集合为空。您可以覆盖任何协议所需的方法来提供您自己的自定义实现。
可用版本
iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+
相关用法
- Swift RangeReplaceableCollection insert(_:at:)用法及代码示例
- Swift RangeReplaceableCollection filter(_:)用法及代码示例
- Swift RangeReplaceableCollection removeFirst(_:)用法及代码示例
- Swift RangeReplaceableCollection removeSubrange(_:)用法及代码示例
- Swift RangeReplaceableCollection replaceSubrange(_:with:)用法及代码示例
- Swift RangeReplaceableCollection removeFirst()用法及代码示例
- Swift RangeReplaceableCollection remove(at:)用法及代码示例
- Swift RangeReplaceableCollection append(_:)用法及代码示例
- Swift RangeReplaceableCollection +=(_:_:)用法及代码示例
- Swift RangeReplaceableCollection removeAll(where:)用法及代码示例
- Swift RangeReplaceableCollection +(_:_:)用法及代码示例
- Swift RangeReplaceableCollection init(repeating:count:)用法及代码示例
- Swift RangeReplaceableCollection insert(contentsOf:at:)用法及代码示例
- Swift RangeReplaceableCollection append(contentsOf:)用法及代码示例
- Swift Range clamped(to:)用法及代码示例
- Swift RangeExpression ~=(_:_:)用法及代码示例
- Swift Range overlaps(_:)用法及代码示例
- Swift Range用法及代码示例
- Swift Range endIndex用法及代码示例
- Swift Range ~=(_:_:)用法及代码示例
- Swift RangeExpression relative(to:)用法及代码示例
- Swift Range isEmpty用法及代码示例
- Swift Range ==(_:_:)用法及代码示例
- Swift Range index(_:offsetBy:)用法及代码示例
- Swift RandomNumberGenerator用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 RangeReplaceableCollection。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。