问题描述
Foundation.Measurement
使用以下签名实现 >
和 <
运算符:
static func > (
lhs: Measurement<UnitType>,rhs: Measurement<UnitType>
) -> Bool
(https://developer.apple.com/documentation/foundation/measurement/2883205)
static func < <LeftHandSideType,RightHandSideType>(
lhs: Measurement<LeftHandSideType>,rhs: Measurement<RightHandSideType>
) -> Bool where LeftHandSideType: Unit,RightHandSideType: Unit
(https://developer.apple.com/documentation/foundation/measurement/2293618)
为什么它们会不同?
他们似乎没有费心实施>
:
对于符合 Comparable 的任何类型,这是大于运算符 (>) 的默认实现。
似乎他们继续前进,只是实现了 <
,而不是 >
——使用不同的签名。
为什么 <
运算符允许 lhs
和 rhs
使用不同的单位类型?谁想比较苹果和橙子?我希望:
static func < (
lhs: Measurement<UnitType>,rhs: Measurement<UnitType>
) -> Bool
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)