以下内容与Dart Style Guide不兼容。我不应该这样做吗?我正在扩展num
类以构建用于医疗应用的度量单位库。使用小写看起来比Kg或Lbs更优雅。在某些情况下,建议使用小写字母以确保安全,即mL而不是M1。
class kg extends num {
String uom = "kg";
num _value;
lbs toLbs() => new lbs(2.20462 * _value);
}
class lbs extends num {
String uom = "lbs";
num _value;
kg toKg() => new kg(_value/2.20462);
}
答案 0 :(得分:2)
对于你的情况,我可能选择一个单位(例如毫克)并使其他单位倍数。您可以使用除法进行转换:
const mg = 1; // The unit
const g = mg * 1000;
const kg = g * 1000;
const lb = mg * 453592;
main() {
const numPoundsPerKilogram = kg / lb;
print(numPoundsPerKilogram); // 2.20462...
const twoPounds = lb * 2;
const numGramsInTwoPounds = twoPounds / g;
print(numGramsInTwoPounds); // 907.184
}
最好使单位小,所以其他单位可以是整数倍(int
s是任意精度)。
答案 1 :(得分:1)
如果您使用它们,请由您自己决定 可能存在重要的情况 我现在能够想到的是,当你有一个开源项目并且你不想疏远潜在的贡献者时。
当你没有特别的理由坚持这些指导方针时,如果你有充分的理由偏离它。
答案 2 :(得分:1)
不要为单位使用类。将它们用于数量:
class Weight {
static const double LBS_PER_KG = 2.20462;
num _kg;
Weight.fromKg(this._kg);
Weight.fromLbs(lbs) {
this._kg = lbs / LBS_PER_KG;
}
get inKg => _kg;
get inLbs => LBS_PER_KG * _kg;
}
查看持续时间类的想法。
答案 3 :(得分:1)
编码约定有助于您编写高质量,可读的代码。如果您发现忽略某个约定有助于提高可读性,那么这就是您的决定。
但是,代码很少只能被一双眼睛看到。其他程序员在阅读代码时会感到困惑,如果它没有遵循样式指南。遵循编码约定允许其他人快速浏览您的代码并轻松了解正在发生的事情。当然,您可能真的会成为唯一一个查看此代码的人,在这种情况下,这是没有实际意义的。
在大多数情况下,我会避免偏离风格指南,除非优势非常明显。对于你的情况,我没有优势超过劣势。
答案 4 :(得分:0)
我不太认真地对待那些编码标准。
我认为这些指导方针更合理:更少任意,更有用:
Java:Code Conventions
Javascript:http://javascript.crockford.com/code.html
你可以选择更多的东西 - 挑选最适合你的东西!
PS:
只要你谈论Dart,请查看这篇文章: