Scala'da, bir değişken bildirimi varsa, ör. Bu satırı, 1'i ekleyerek, örn.Scala davranışı, değişkenlere veya değişkenlere Char atanırken,
x = x + 1
Derleme hatası alıyorum: Tür uyuşmazlığı, bulundu Int gerekli Char. Ancak, bir derleme hatasız yapabilirsiniz:
x = 'a' + 1
bu nesneler vs edebi değerleri ile ilgisi vardır tahmin ediyorum, ancak, kesin davranış kafamı almaya çalışıyorum. Tam olarak bir tamsayı tam olarak bir Char'e atayabilirsiniz, ör. 97 ve ayrıca 97-32 sonucunu da atayabilirsiniz. Ancak 97-32 + 5 dersem, o zaman bir tür uyuşmazlığı hatası alırım. Derleyici hangi noktada bir nesneyle sonuçlanan bir değişmez ile sonuçlanan bir ifade arasında ayrım yapar?
Bu cevap vermezse neden 'var x: Char = a + 1 'çalışır, ancak' x = x + 1 yapmaz. İlk atamada “a + 1” ifadesi dolaylı olarak “Char” a dönüştürülür, ancak yeniden atama yapılmaz. Niye ya? –
Cevabımı düzenledim. Bu düşündüğümden farklı çalışırsa, lütfen cevabımı silme için oy verin, çünkü o zaman temeldeki şeyleri anlamadığım anlamına gelir. –
Ayrıca "ilk atama" ve "başlatma" arasında ayrım yapalım çünkü bence bu önemli. Değişken başlatma, değer başlatmadan farklı değildir. Ben val x: Char = 'a' + 1 ', bu değişken için var x: Char =' a '+ 1' ile aynıdır. –