当前位置: 首页 > news >正文

【quantity】11 体积单位模块(volume.rs)

我们实现 volume.rs 文件,包含 d(分,deci)、c(厘,centi)、m(毫,milli) 前缀的体积单位。体积的基本单位是 立方米(CubicMeter),而常用的衍生单位包括 升(Liter)(即立方分米)。

一、实现 volume.rs:

/// Volume (cubic meter) / 体积 (立方米)
use super::{Quantity, prefix::*};
use crate::unit::CubicMeter;/// Generic volume with SI prefixes / 带SI前缀的通用体积量
pub type Volume<V, P = NoPrefix> = Quantity<V, P, CubicMeter>;/// Cubic meters / 立方米
pub type CubicMeters<V> = Volume<V, NoPrefix>;/// Cubic decimeters / 立方分米 (1 dm³ = 1 L)
pub type CubicDecimeters<V> = Volume<V, Deci>;/// Cubic centimeters / 立方厘米 (1 cm³ = 1 mL)
pub type CubicCentimeters<V> = Volume<V, Centi>;/// Cubic millimeters / 立方毫米
pub type CubicMillimeters<V> = Volume<V, Milli>;/// Liters / 升 (等同于立方分米)
pub type Liters<V> = CubicDecimeters<V>;/// Milliliters / 毫升 (等同于立方厘米)
pub type Milliliters<V> = CubicCentimeters<V>;

二、说明:

  1. 基本单位:CubicMeter(立方米)是体积的 SI 基本单位。

  2. 前缀单位:

  • CubicDecimeters(立方分米,d 前缀,Deci)→ 1 dm³ = 1 L(升)

  • CubicCentimeters(立方厘米,c 前缀,Centi)→ 1 cm³ = 1 mL(毫升)

  • CubicMillimeters(立方毫米,m 前缀,Milli)

  1. 额外别名:
  • Liters(升)是 CubicDecimeters 的别名,方便使用。

  • Milliliters(毫升)是 CubicCentimeters 的别名,符合常见用法。

三、使用示例:

let water_volume: Liters<f64> = Liters::new(2.0); // 2 升
let small_volume: Milliliters<f64> = Milliliters::new(500.0); // 500 毫升
println!("{} L = {} mL", water_volume, water_volume.into_milliliters());

这样,volume.rs 提供了 d、c、m 前缀的体积单位,并兼容升和毫升的常见用法。

http://www.dtcms.com/a/171447.html

相关文章:

  • Kubernetes(k8s)学习笔记(五)--部署Ingress实现域名访问和负载均衡
  • C++23 std::tuple与其他元组式对象的兼容 (P2165R4)
  • 每天五分钟深度学习框架PyTorch:基于Dataset封装自定义数据集
  • 用哈希表封装出unordered_set/_map
  • MySQL基础关键_007_DQL 练习
  • MOS管极间电容参数学习
  • 华中科技大学系统结构慕课部分答案
  • 250504_VsCode使用
  • Mybatis执行流程知多少
  • WEB 前端学 JAVA(二)Java 的发展与技术图谱简介
  • Linux网络编程:套接字
  • Spring AI支持的聊天模型全方位比较与分析
  • 利用n8n、DeepSeek、AI Agent、子工作流生成统计图
  • PyTorch_张量形状操作
  • 常用命令集合
  • 55、【OS】【Nuttx】编码规范解读(三)
  • 比较 TensorFlow 和 PyTorch
  • 30.沿触发控制与电平宽度触发控制的抗干扰能力对比分析
  • 如何在服务器后台运行Python脚本,并配置虚拟环境与GPU支持
  • 科普简洁版:同态加密——密码学的未来瑰宝
  • CPU 的指令集存放在什么地方?
  • 护网奇谈: 红队工程师手记
  • k230摄像头初始化配置函数解析
  • 含铜废水的资源化利用
  • 第三方组件库:element-uiiviewVant
  • 方案精读:业财融合转型路径和华为实践【附全文阅读】
  • 【Godot】使用 Shader 实现可调节的精确切角效果
  • indexedDB
  • 两台电动缸同步算法
  • Linux常用命令30——groupadd创建新的用户组