在JavaScript中,我可以定義:使用||運營商的替代分配
num = numerator || 0;
denom = denominator || 1;
然而,在Java中,這不能適用。
沒有使用條件(明確寫入),是否有一個簡潔的方式來實現這個「如果未定義,分配給這個」?
在JavaScript中,我可以定義:使用||運營商的替代分配
num = numerator || 0;
denom = denominator || 1;
然而,在Java中,這不能適用。
沒有使用條件(明確寫入),是否有一個簡潔的方式來實現這個「如果未定義,分配給這個」?
也許這就夠了。
num = numerator != null ? numerator : 0;
denom = denominator != null ? denominator : 1;
您可以使用三元運算符/條件(?:)
String ans = (question == null)? null : "Option A";
在上面的例子中,我們設置ANS以選項A,如果問題不爲空,否則ANS設置爲null。
我知道你指定了「無條件」,但是三元「if」呢?
num = (num != 0) ? numerator : 0;
This例子沒有意義。請參考[Nicolas'answer](http://stackoverflow.com/a/15892354/1065197)。 – 2013-04-09 02:37:44
您可以使用多個構造函數,並設置爲默認值...如果u使用它作爲一個對象...
zero = new Rational();
five = new Rational(5);
twoThird = new new Rational(2,3);
class Rational{
num = 0;
denom = 1;
public Rational(){
}
public Rational(int num){
this.num=num;
}
public Rational(int num , int denom){
this.num=num;
this.denom=denom;
}
}
與三元的其他解決方案如何以往任何時候都需要有包裝對象,並處理空指針,這是一般沒有良好的Java風格
這並不簡潔,但我不認爲Java對於簡潔明確的高價值程序員來說是一種正確的語言。 – 2013-04-09 03:23:38
:D Perl ftw!但是Java使它很容易生成幾十行代碼,但是Java引導你使用一些易於測試,重用和擴展的風格 – JAMM 2013-04-09 03:41:57
如果變量未定義,java編譯器會給你一個錯誤 – 2013-04-09 02:35:24
在Java中沒有「未定義」的東西......如果你想如果傳遞了'null'則分配一個默認值,那麼你可以使用三元運算符。 – nhahtdh 2013-04-09 02:36:02
JavaScript與Java無關。這兩種是完全不同的語言。 – deceze 2013-04-09 02:36:26