當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Swift Numeric用法及代碼示例

協議

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+

相關用法


注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Numeric。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。