swift - 为现有的苹果转换类别添加更多转换单位
问题描述
是否可以在现有的苹果转换类别中添加更多转换单位?
https://developer.apple.com/documentation/foundation/unittemperature 在上面的链接 Rankine 不可用。如何自定义/扩展此类并添加 Rankine ?
PS。兰金样本公式为:
5°C × 9/5 + 491.67 = 500.67°R
聚苯乙烯。计划以这种方式使用它
let celsius = Measurement(value: 4, unit: UnitTemperature.celsius)
let kelvins = celsius.converted(to: UnitTemperature.kelvin)
print(kelvins)
TIA
解决方案
只需遵循 中的文档Dimension
,这是UnitTemperature
.
UnitTemperature
的基本单位是开尔文。所以我只需要查找将 Rankine 转换为 Kelvin 的公式,它只是一个线性系数 ( degreesKelvin = degressRakine * 5/9
),并将其插入:
extension UnitTemperature {
static var rankine = UnitTemperature(
symbol: "°R",
converter: UnitConverterLinear(coefficient: 5/9)
)
}
let celsius = Measurement(value: 5, unit: UnitTemperature.celsius)
let rankin = celsius.converted(to: .rankine)
print(rankin) // => 500.66999999999996 °R
推荐阅读
- java - 通过 FXML 中的 FXCollections 创建集合
- javascript - 我想通过 json 数据更新实时画布折线图
- awk - awk 和 redis 以及 UTF8 字符的问题
- php - 将大量的记录插入到具有关系且没有重复的数据库中
- arduino-ide - 我需要修复“LWMQTT_CONNECTION_DENIED”和“LWMQTT_NOT_AUTHORIZED”
- c++ - 为什么我的小代码给我这个警告
- javascript - Javascript简单表单未加载
- html - How to stop mails from going to /var/spool/mail/$USER folder and redirect them to the personal mail
- python - 如何修复“'CategoricalDtype'类型的对象没有len()”类型的错误?
- react-native - 如何在 react-native-navigation 中一一关闭模态?