3
根據Swift官方文檔(Swift extension doc),Swift擴展看起來像Java枚舉。什麼是Java相當於Swift的「擴展」?
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
斯威夫特有定期枚舉。這只是將新東西添加到Double類型中。與枚舉沒有太大關係。 – Mints97
在Java中,考慮[tag:jscience]'javax.measure.converter'進行單位轉換。 – trashgod