当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。