协议
Additive
AdditiveArithmetic
具有支持加法和减法的值的类型。
声明
protocol AdditiveArithmetic : Equatable
概述
AdditiveArithmetic
协议为标量值(例如整数和浮点数或向量)的加法运算提供了合适的基础。您可以使用AdditiveArithmetic
协议作为泛型约束来编写对标准库中的任何数字类型进行操作的泛型方法。
以下代码声明了一个方法,该方法计算具有AdditiveArithmetic
元素的任何序列的总数。
extension Sequence where Element: AdditiveArithmetic {
func sum() -> Element {
return reduce(.zero, +)
}
}
sum()
方法现在可用于任何具有符合 AdditiveArithmetic
的值的序列,无论它是 Double
的数组还是 Int
的范围。
let arraySum = [1.1, 2.2, 3.3, 4.4, 5.5].sum()
// arraySum == 16.5
let rangeSum = (1..<10).sum()
// rangeSum == 45
符合AdditiveArithmetic 协议
要将 AdditiveArithmetic
协议一致性添加到您自己的自定义类型,请实现所需的运算符,并提供静态 zero
属性。
可用版本
iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+
相关用法
- Swift AdditiveArithmetic +(_:)用法及代码示例
- Swift AdditiveArithmetic +(_:_:)用法及代码示例
- Swift AdditiveArithmetic -(_:_:)用法及代码示例
- Swift Array enumerated()用法及代码示例
- Swift AnySequence elementsEqual(_:)用法及代码示例
- Swift ArraySlice starts(with:)用法及代码示例
- Swift ArraySlice reduce(_:_:)用法及代码示例
- Swift Array allSatisfy(_:)用法及代码示例
- Swift AnyCollection min()用法及代码示例
- Swift AsyncThrowingFlatMapSequence min()用法及代码示例
- Swift AnyBidirectionalCollection elementsEqual(_:)用法及代码示例
- Swift AnyRandomAccessCollection randomElement(using:)用法及代码示例
- Swift AsyncPrefixWhileSequence reduce(_:_:)用法及代码示例
- Swift AsyncThrowingMapSequence reduce(_:_:)用法及代码示例
- Swift AnyBidirectionalCollection lexicographicallyPrecedes(_:)用法及代码示例
- Swift AnyHashable ==(_:_:)用法及代码示例
- Swift AsyncDropWhileSequence allSatisfy(_:)用法及代码示例
- Swift AsyncSequence dropFirst(_:)用法及代码示例
- Swift AnyBidirectionalCollection split(separator:maxSplits:omittingEmptySubsequences:)用法及代码示例
- Swift AnyRandomAccessCollection first(where:)用法及代码示例
- Swift AnyBidirectionalCollection sorted()用法及代码示例
- Swift AsyncDropFirstSequence filter(_:)用法及代码示例
- Swift AsyncSequence reduce(_:_:)用法及代码示例
- Swift AsyncFlatMapSequence min()用法及代码示例
- Swift AsyncThrowingPrefixWhileSequence drop(while:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 AdditiveArithmetic。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。