Flutter温度监测插件temper的使用
Flutter温度监测插件temper的使用
概述
该插件旨在解决在许多代码库中仅使用整数或双精度浮点数来表示测量单位(如摄氏度)的问题。该插件的目标是通过将行为(如已知的转换因子和算术运算)直接嵌入类型中,使有关测量的代码更清晰、更具表现力且易于理解和推理。
特性
- 基于
me_sure_meant
库,支持Temperature
。 - 支持常见的SI单位和英制/美国习惯单位。
- 流畅定义、单位转换以及加减运算。
- 测量中的不确定性传播。
- 框架组件以轻松扩展和演化,替换实现或添加新功能。
- 完整的SI前缀支持,满足您的所有需求。
- 扩展方法使得定义数量变得简单,例如:
(10.kelvin() + 42.fahrenheit() + Kelvins(crude(10), Kelvin.megakelvin) - 30000.celsius()).toUnit(Fahrenheit());
温度测量的支持
- SI单位:
Kelvins
,DegreesCelsius
- 英制单位:
DegreesFahrenheit
使用
该插件依赖于me_sure_meant
库,并适用于任何Dart 3+运行环境。
示例代码
请参阅example/temper_example.dart
文件中的示例。
import 'package:me_sure_meant/me_sure_meant.dart';
import 'package:temper/temper.dart';
void main() {
// 将华氏度转换为摄氏度
final fahrenheit = 89.fahrenheit();
final celsius = fahrenheit.toUnit(Celsius());
assert(celsius == 31.6667.celsius());
// 将摄氏度转换为开尔文
final kelvin = 20.celsius().toUnit(Kelvin.kelvin);
assert(kelvin == 293.15.kelvin());
/// 注意,虽然°F、°C 和 K 都可以互相转换,但尝试通过“转换为开尔文,相加,再转回”来相加两个温度是无效的。
/// 这是因为常数的正负问题。
/// 即 (1 °C + 500 °C) 不等于 (274.15 K + 773.15 K)
/// 这一点比较微妙,但已广为人知。
/// 参见:https://en.wikipedia.org/wiki/Conversion_of_scales_of_temperature#Converting_units_of_temperature_differences
/// 虽然可以通过覆盖加法和减法来解决,但这仍值得指出。
final mess = (10.kelvin() +
42.fahrenheit() +
Kelvins(crude(10), Kelvin.megakelvin) -
30000.celsius())
.toUnit(Fahrenheit());
print(mess);
assert(mess == 17945568.33.fahrenheit());
}
更多关于Flutter温度监测插件temper的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复