Her yetkili Java programcısı, == yerine dize karşılaştırmak için String.equals () kullanmanız gerektiğini bilir; çünkü == referans eşitliği için denetler.
Dizelerle uğraşırken, çoğu zaman referans eşitliği yerine değer eşitliğini kontrol ediyorum. Bana göre dize değerleri sadece == kullanarak karşılaştırılabilirse, dil sezgisel olarak karşılaştırılabilir.
Karşılaştırma olarak, C # 'ın == işleci s dizgisi için değer eşitliği olup olmadığını kontrol eder . Ve gerçekten referans eşitliğini kontrol etmeniz gerekiyorsa, String.ReferenceEquals öğesini kullanabilirsiniz.
Bir başka önemli nokta, Tellerin değişmez olmasıdır, bu yüzden bu özelliğe izin vererek yapılacak hiçbir zarar yoktur.
Bunun Java’da uygulanmamasının belirli bir nedeni var mı?
==
operatörü yalnızca eşleştiren Equals
eğer ==
operatör bu şekilde hayata geçirildi. İçin varsayılan davranış ==
aynıdır ReferenceEquals
(aslında, ReferenceEquals
nesne versiyonuyla tanımlanır ==
)
==
Nesne eşitliği veeq
referans eşitliği olan Scala'ya bakmak isteyebilirsiniz ( ofps.oreilly.com/titles/9780596155957/… ).