关于是否应该在变量中包含测量单位,我看到了一些不同的观点,我不太确定如何处理极端情况。
例如,如果我有一个存储从加速度计获得的“加速度”的变量,我是否必须在变量名称中明确说明其测量单位,即米每秒的平方?
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;
最佳答案
至少对于第二部分,Java“日期时间”API 的最新更新有一个简单的答案。
int time; // time in what unit??
变成:
Duration somePeriodOfTime ...
这可能告诉我们第一个例子的理想解决方案是什么:也定义不同的类型。所以不要使用代表平方的 double 数。
创建一个类(理想情况下具有“值”语义),例如
Area
,它始终包含一个数值(可能是 double 值) 和 及其单位。然后可以将该单位实现为枚举,然后您可以很好地添加一些内置转换代码,几乎神奇地将平方英尺转换为平方米。
关于java - 测量单位是否应始终包含在所有变量名称中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56875539/