【发布时间】:2020-08-31 13:09:18
【问题描述】:
为什么不能在 > 运算符中推断出UnitType?
import Foundation
let mass = Measurement(value: 50, unit: UnitMass.kilograms)
mass > Measurement(value: 100, unit: .kilograms)
类型“单位”没有成员“公斤”
运算符的定义暗示它应该:
static func > (Measurement<UnitType>, Measurement<UnitType>) -> Bool
【问题讨论】:
-
你得到的错误
Type ‘Unit’ has no member ‘kilograms’似乎与 > func 没有任何关系 -
您的意思是说
mass > Measurement...而不是weight > Measurement...?如果不是,weight是什么? -
如果你的意思是
mass > Measurement...,那么出于某种原因这可行:mass > .init(value: 100, unit: .kilograms) -
@TylerTheCompiler 我正要发布这个
-
这是因为
Measurement可用于初始化任何单元类型.init假定lhs类型init(value: Double, unit: UnitMass)
标签: swift generics types measurement