Java'da bir boolean'ı basitleştirmek için basit bir yöntemden daha iyi bir yol var mı?Java'da bir boole değişkenini değiştirmenin en temiz yolu?
if (theBoolean) {
theBoolean = false;
} else {
theBoolean = true;
}
Java'da bir boolean'ı basitleştirmek için basit bir yöntemden daha iyi bir yol var mı?Java'da bir boole değişkenini değiştirmenin en temiz yolu?
if (theBoolean) {
theBoolean = false;
} else {
theBoolean = true;
}
theBoolean = !theBoolean;
Bu ... gerçekten açık - oops! Neden düşünmediğimi anlamıyorum. Teşekkürler. –
Bir ++ bool operatörü için oyuyorum ++ i ve --i ;-)) – ypnos
! Boolean doğal bir seçim gibi görünüyor - belki de gelecekte. –
theBoolean ^= true;
Daha az tuş vuruşlarını değişken artık dört harf
daha uzunsahakkında ve DRY :) – Tetha
ile uyumludur, ancak xor'da olmayan tüm okuyucular için daha az açıktır ... –
Brevity, aklın ruhu. –
önce:
boolean result = isresult();
if (result) {
result = false;
} else {
result = true;
}
sonra:
boolean result = isresult();
result ^= true;
Kim oy kullanmış? Sebebini açıklayabilir misiniz lütfen? –
Birinin neden sizi neden düşürdüğünü düşünmek için iki ana neden: 1) İplik çekirdeği (_come on! Soru soruldu 7 (!) Yıl önce! _) & Cevabınız masaya yeni bir şey getirmiyor; 2) Seçmen “temiz” bir şey bekledi (_read: shorter_) - AaronMaenpaa'nın cevabı bunun en iyi örneğidir. –
@PriiduNeemre ve o seçmen siz değil misiniz? – Elltz
"bariz" yolu "kısa" bir şekilde (çoğu zaman)
theBoolean ^= true;
theBoolean = !theBoolean;
(çoğu insan için) "En görsel" yol (en belirsiz)
theBoolean = theBoolean ? false : true;
theMethod(theBoolean ^= true);
yılında Geçiş ve kullanımı, bu bitsel operatör aracılığıyla değerini geçiş ve ardından yeni atanan değeri döndürecektir yöntem çağrısında kullanılabilir. Eğer Boole BOŞ değerleri kullanmak ve sahte bunları düşünün
Uygulamayı, geçiş/değiştirme denilen bir fonksiyona/yönteme sarın ve sonra onu karıştırmanın neredeyse hiçbir yolu yoktur. – Lambage
, şunu deneyin:
static public boolean toggle(Boolean aBoolean) {
if (aBoolean == null) return true;
else return !aBoolean;
}
Eğer Boole NULL değerleri teslim değilseniz, bu deneyin:
static public boolean toggle(boolean aBoolean) {
return !aBoolean;
}
Bu en temiz vardır Yöntem imzasındaki amacı gösterdikleri için, ile karşılaştırıldığında okunması daha kolay! operatörü ve kolayca ayıklanabilir. Tabii
Kullanımı
boolean bTrue = true
boolean bFalse = false
boolean bNull = null
toggle(bTrue) // == false
toggle(bFalse) // == true
toggle(bNull) // == true
, sen Groovy veya uzatma yöntemleri sağlayan bir dil kullanırsanız, bir uzantı kayıt ederek yalnızca yapın: Ben yaklaşık ah güzel
Boolean b = false
b = b.toggle() // == true
oldu Aynı soruyu sormak için, javascript/as3'e veya genel olarak ECMAScript'e özgü olsa da, sanırım ... bu soruya kolayca kapılacak. –
Ya yok ise? Şebeke ?? – onmyway133