有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java所有变量名中都应该包含度量单位吗?

对于是否应该在变量中包含度量单位,我看到了一些不同的观点,我不太确定如何处理这种情况

例如,如果我有一个存储了从加速计获得的“加速度”的变量,我是否必须在变量名称中明确说明其测量单位,即米/秒平方

Double acceleration; // m/s^2
// or this
Double accelerationMetersPerSecondSquared
// or maybe this
Double accelerationMeterPerSecSqr

如你所见,我担心的是,如果测量单位很复杂,变量名会变得很长,如果它是加速度,已知单位为m/s^2,那么有必要使用它吗

当然,在其他情况下,有必要使用测量单位,例如使用变量来存储时间

int time; // time in what unit??
// this is more clear
int timeInSeconds;

共 (1) 个答案

  1. # 1 楼答案

    至少对于第二部分,Java“日期-时间”API的最新更新有一个简单的答案

    int time; // time in what unit??
    

    变成:

    Duration somePeriodOfTime ...
    

    这可能告诉我们第一个例子的理想解决方案是什么:定义不同的类型。所以不要使用表示正方形的双精度符号

    创建一个类(最好使用“值”语义),比如Area,它总是包含一个数值(可能是一个双精度)及其单位

    然后,该单元可以实现为enum,然后很好地添加一些内置的转换代码,几乎神奇地完成平方英尺到平方米的转换