協議
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。