协议
Numeric
具有支持乘法的值的类型。
声明
protocol Numeric : AdditiveArithmetic, ExpressibleByIntegerLiteral
概述
Numeric
协议为标量值(例如整数和浮点数)的算术运算提供了合适的基础。您可以使用Numeric
协议作为泛型约束来编写对标准库中的任何数字类型进行操作的泛型方法。
下面的示例扩展了Sequence
的方法,该方法返回一个数组,其中序列的值乘以 2。
extension Sequence where Element: Numeric {
func doublingAll() -> [Element] {
return map { $0 * 2 }
}
}
使用此扩展,任何具有符合Numeric
的元素的序列都具有doublingAll()
方法。例如,您可以将双精度数组或整数范围的元素加倍:
let observations = [1.5, 2.0, 3.25, 4.875, 5.5]
let doubledObservations = observations.doublingAll()
// doubledObservations == [3.0, 4.0, 6.5, 9.75, 11.0]
let integers = 0..<8
let doubledIntegers = integers.doublingAll()
// doubledIntegers == [0, 2, 4, 6, 8, 10, 12, 14]
符合数值协议
要将 Numeric
协议一致性添加到您自己的自定义类型,请实现所需的初始化程序和运算符,并使用可以表示自定义类型的任何值的大小的类型提供 magnitude
属性。
可用版本
iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+
相关用法
- Swift Numeric *(_:_:)用法及代码示例
- Swift Numeric magnitude用法及代码示例
- Swift Numeric init(exactly:)用法及代码示例
- Swift Never pageCommand(value:in:step:)用法及代码示例
- Swift Never opacity(_:)用法及代码示例
- Swift Never colorMultiply(_:)用法及代码示例
- Swift Never accessibilityAction(action:label:)用法及代码示例
- Swift Never alert(isPresented:error:actions:message:)用法及代码示例
- Swift Never confirmationDialog(_:isPresented:titleVisibility:actions:)用法及代码示例
- Swift Never flipsForRightToLeftLayoutDirection(_:)用法及代码示例
- Swift Never position(x:y:)用法及代码示例
- Swift Never position(_:)用法及代码示例
- Swift Never luminanceToAlpha()用法及代码示例
- Swift Never accessibilityAction(_:_:)用法及代码示例
- Swift Never previewDisplayName(_:)用法及代码示例
- Swift Never badge(_:)用法及代码示例
- Swift Never progressViewStyle(_:)用法及代码示例
- Swift Never buttonStyle(_:)用法及代码示例
- Swift Never popover(isPresented:attachmentAnchor:arrowEdge:content:)用法及代码示例
- Swift Never projectionEffect(_:)用法及代码示例
- Swift Never onTapGesture(count:perform:)用法及代码示例
- Swift Never overlay(_:in:fillStyle:)用法及代码示例
- Swift Never background(_:ignoresSafeAreaEdges:)用法及代码示例
- Swift Never digitalCrownRotation(_:)用法及代码示例
- Swift Never saturation(_:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Numeric。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。