SORU
7 Temmuz 2014, PAZARTESİ


Neden't bazı durumlarda bir int ve char ekleyebilirsiniz?

Neden yapar

char ch = '4';
ch = '4'   2;

iş, ama

char ch = '4';
ch = ch    2;

değil mi?

CEVAP
7 Temmuz 2014, PAZARTESİ


Bu, lets anlamak için derleyici her iki olasılık için her adımda ne yaptığını düşünün. İle başlayalım:

ch = '4'   2;

Derleyici '4' int ' e çevirir. Olur

ch = 52   2;

Derleyici o zaman dönüşür

ch = 54;

ch char ve derleyici dönüşüm kaybı yok olduğunu kanıtlamak gibi bir char 54 dönüştürmek için izin verilir.

Şimdi ikinci versiyonunu düşünün sağlar:

ch = ch    2;

ch derleme zamanında bilinen bir değeri vardır. Böylece bu olur

ch = ((int) ch)   2;

Şimdi derleyici bu sonucu (bir int) char aralığında depolanabilir olduğunu kanıtlamak. Bu yüzdendeğilotomatik olarak dar ve bir hata olarak bildiriyor.

EDİT1:

Eğer derleyici bu değişken hiç değişmeyecek kanıtlayabilirim, ve inlineable. Sonra ikinci formu ilk haline olabilir. Subir de sözlerine ekledi 'son' bu mümkün olur. dikkat çekti Eğer bir derleyici değiştirmek analizi gerçekleştirmek için, eğer endam yetenekli olmasına rağmen bu Son kelime bile etmeden, ama son derleyici ve kod okuyucular için daha kolay yapar.

EDİT2:

İnt daralması Java Language Spec link alınmıştır char için lütfen Jon Skeet tarafından sağlandı.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DrakeVEVO

    DrakeVEVO

    17 AĞUSTOS 2009
  • Soulkiller13 ツ

    Soulkiller13

    30 Mayıs 2013
  • Wild Academy

    Wild Academy

    8 Aralık 2009