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 楼答案
至少对于第二部分,Java“日期-时间”API的最新更新有一个简单的答案
变成:
这可能告诉我们第一个例子的理想解决方案是什么:定义不同的类型。所以不要使用表示正方形的双精度符号
创建一个类(最好使用“值”语义),比如
Area
,它总是包含一个数值(可能是一个双精度)及其单位然后,该单元可以实现为enum,然后很好地添加一些内置的转换代码,几乎神奇地完成平方英尺到平方米的转换