gpt4 book ai didi

ios - 协议(protocol)扩展后定义的功能?

转载 作者:可可西里 更新时间:2023-11-01 00:52:55 25 4
gpt4 key购买 nike

当我在看 2 个 WWDC 2015 讲座时,他们提到了以下代码:

func == (lhs: Polygon, rhs: Polygon) -> Bool {
return lhs.corners == rhs.corners
}
extension Polygon : Equatable {}
func == (lhs: Circle, rhs: Circle) -> Bool {
return lhs.center == rhs.center
&& lhs.radius == rhs.radius
}
extension Circle : Equatable {}

equatable 函数声明不应该放在扩展中吗?现在,他们在外面,存在于何处?换句话说,它不应该是这样的吗?

extension Polygon : Equatable {
func == (lhs: Polygon, rhs: Polygon) -> Bool {
return lhs.corners == rhs.corners
}
}

extension Circle : Equatable {
func == (lhs: Circle, rhs: Circle) -> Bool {
return lhs.center == rhs.center
&& lhs.radius == rhs.radius
}
}

最佳答案

尝试第二个版本时的两个问题:

  1. 运算符只允许在全局范围内使用
  2. 由于 1,扩展不符合 Equatable 条件。

换句话说,不,你不能根据运算符声明的范围来做。

关于ios - 协议(protocol)扩展后定义的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31019713/

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