gpt4 book ai didi

swift - 为什么 CGFloat.zero 存在?

转载 作者:行者123 更新时间:2023-12-04 00:15:52 29 4
gpt4 key购买 nike

Apple defined 有什么特别的原因吗? CGFloat.zero?我们应该什么时候使用它?又和0有什么不同?

最佳答案

通用算法建立在协议(protocol)之上,让我们可以编写适用于多种类型的通用代码。 AdditiveArithmetic协议(protocol)要求符合类型的类型具有零值 (.zero),可用于需要该值的算法。有了它,你可以编写一个函数来处理许多不同类型的整数(Int16、Int32、Int…)、 float (Double、Float、CGFloat…),甚至向量。任何具有算术零、“加法和减法”的概念并且可以相等(因为 AdditiveArithmetic 需要 Equatable)的东西都可以参与。

AdditiveArithmetic 不要求类型符合 ExpressibleByIntegerLiteral,这意味着可能无法使用 0 符号创建类型。向量类型通常不会以这种方式初始化,但仍然具有“零值”。

作为如何使用它的示例,请考虑 sum(),它可以处理整数、 float 、向量或任何您希望创建的符合 AdditiveArithmetic 的自定义类型:

extension Sequence where Element: AdditiveArithmetic {
func sum() -> Element {
reduce(.zero, +)
}
}

关于swift - 为什么 CGFloat.zero 存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63833206/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com