SORU
29 AĞUSTOS 2008, Cuma


| | | Veya operatörleri arasındaki fark nedir?

Her zaman || (iki boru) VEYA deyimler, C de kullandım# ve PHP. Tek bir boru kullanılan görüyorum ara sıra: |. Bu iki kullanım arasındaki fark nedir? Diğer üzerinde kullanırken herhangi uyarılar vardır ya da değiştirilebilir?

CEVAP
29 AĞUSTOS 2008, Cuma


Gibi & ve && operatörü, çift Operatör bir "kısa devre" operatörü.

Örneğin:

if(condition1 || condition2 || condition3)

Eğer condition1 doğruysa, durum 2 ve 3 kontrol edilecektir.

if(condition1 | condition2 | condition3)

Bu ve eğer 1 zaten doğruysa bile 3, 2 koşulları kontrol eder. Koşullar oldukça pahalı fonksiyonları olabilir gibi, onları kullanarak iyi bir performans artışı elde edebilirsiniz.

Orada büyük bir uyarı, NullReferences veya benzer sorunlar. Örneğin:

if(class != null && class.someVar < 20)

Eğer sınıf boş ise, eğer deyim "class=! sonra durur boş" false. Sadece sınıf kontrol etmek için çalışacağız &, kullanın.someVar ve güzel bir NullReferenceException olsun. Kötü bir şey tetiklemesi pek olası değil gibi bir tuzak Ya da Operatör o kadar olmayabilir, ama akılda tutulması gereken bir şey.

Hiç kimse her koşul yürütülecek olan bir fonksiyon olduğu bir tasarım olmadığı sürece rağmen tek & veya | operatörleri kullanır. Tasarım bir koku gibi geliyor, ama bazen (nadiren) bir şeyler yapmak için temiz bir yolu. & Operatörü "çalışma bu 3 fonksiyonları ve eğer onlardan biri yanlış verir, yürütme başka blok", | "sadece Çalıştır başka bir engel yok return false" - yararlı olabilir, ama dediğim gibi, pek sık bir tasarım kokuyor.

| Ve & operatör İkinci bir kullanımı ise: Bitwise Operations.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Brandon McCrary

    Brandon McCr

    15 Ocak 2012
  • Damian Winter

    Damian Winte

    27 ŞUBAT 2007
  • EmbarkToHeaven

    EmbarkToHeav

    3 EYLÜL 2007