根据官方 Swift 文档(Swift extension doc),Swift 扩展看起来像 Java 枚举。
Swift extensions:
extension Double {
var km: Double { return self * 1_000.0 }
var m: Double { return self }
var cm: Double { return self / 100.0 }
var mm: Double { return self / 1_000.0 }
var ft: Double { return self / 3.28084 }
}
let oneInch = 25.4.mm
print("One inch is \(oneInch) meters")
// prints "One inch is 0.0254 meters"
我试图用 Java 来表示这一点,并提出了以下代码。这个 Java 表示是否正确?还是有任何其他方式来表示这一点?
public enum LengthMetric {
km(1.0e3), mm(1.0e-3), m(1.0e0);
private final double number;
LengthMetric(double number) {
this.number = number;
}
double getValue(double value) {
return value * number;
}
public static void main(String[] args) {
double originalValueInMeters = 3.0;
System.out.printf("Your value on %s is %f%n", km,
km.getValue(originalValueInMeters));
double oneInch = mm.getValue(25.4);
System.out.printf("One inch on %s is %f%n", m,
oneInch);
}
}
Your value on km is 3000.000000
One inch on m is 0.025400