Dizeler ve karakter birleştirme
Aşağıdaki ifadeleri
String string = "string";
string = string ((char)65) 5;
System.out.println(string);
Çıkış stringA5
üretmek.
Aşağıdaki ancak
String string = "string";
string = ((char)65) 5;
System.out.println(string);
string70
üretmek.
Fark nerede?
CEVAP
Operatör önceliği ve dize dönüştürme kombinasyonu sonucu bu davranış bakın.
JLS 15.18.1 devletler:
Eğer tek bir işlenen ifade türü Dize ise, o zaman dize dönüştürme (§5.1.11) zamanında bir dize üretmek için diğer işlenen gerçekleştirilir.
Bu nedenle ilk ifadede işlenen örtülü olarak dize dönüştürülür sağ el: string = string ((char)65) 5;
string = ((char)65) 5;
ancak ikinci ifade için =
bileşik atama operatörü
birlikte göz önünde bulundurulmalıdır. =
,
operatör fonksiyonu daha zayıf olduğundan. Yok char
ve bir var birintint
18 *bir sonucu. Ancak o zaman =
değerlendirilir, ama şu anda ifade
operatörü ile ilgili sonuç zaten değerlendirilmiştir.
PEP8 - 80 Karakter - Büyük Dizeler...
Nasıl bir Dize bir karakter yineleme s...
Python string N. her karakter Split?...
Başlık ne karakter kodlaması HTTP gere...
Değişken uzunlukta bir dize, tek bir k...