为什么在>运算符中不能推断出UnitType?

问题描述 投票:1回答:1

为什么不能在>运算符中推断出UnitType?UnitType 在>运算符中可以推断出?

import Foundation
let mass = Measurement(value: 50, unit: UnitMass.kilograms)
mass > Measurement(value: 100, unit: .kilograms)

类型'单位'没有成员'公斤'。

运算符的定义暗示了它应该。

static func > (Measurement<UnitType>, Measurement<UnitType>) -> Bool
swift generics types measurement
1个回答
2
投票

这里的问题是 Measurement 是一个通用类型,所以你需要在初始化一个新对象时指定Unit类型。如果您希望推断类型,您需要使用 .init 初始化器,它将推断出UnitMass类型。init(value: Double, unit: UnitMass):

mass > .init(value: 100, unit: .kilograms)
© www.soinside.com 2019 - 2024. All rights reserved.