"TypeMismatchError" Nedir?
Mesela, diyelim ki bir `String` değişkeni bekliyorsunuz, ancak ona bir `Int` değer atamaya çalışıyorsunuz. İşte tam burada bu hata devreye girer!
Hata Mesajını Anlamak
```
Type mismatch: inferred type is Int but String was expected
```
Bu mesajda, Kotlin size hangi türde bir değer beklediğini ve ne tür bir değer verdiğinizi açıkça belirtir. Hata mesajını dikkatle incelediğinizde, nerede yanlış yaptığınızı hemen fark edebilirsiniz.
Neden "TypeMismatchError" Alırsınız?
Örneğin:
```kotlin
fun main() {
val number: String = 123 // HATA: String bekleniyor, ancak Int atandı
println(number)
}
```
Yukarıdaki kodda, `number` değişkeni bir `String` olarak tanımlanmış, ancak ona bir `Int` değeri atanmıştır. Kotlin, türleri birbirine dönüştürmeye çalışmaz ve hata mesajını gösterir.
Hata Nasıl Çözülür?
# Çözüm 1: Türü Doğru Atama
fun main() {
val number: String = "123" // Doğru türde değer atandı
println(number)
}
```
Burada `number` değişkenine doğru türde bir değer atadık ve hata ortadan kalktı.
# Çözüm 2: Tür Dönüşümü Yapmak
```kotlin
fun main() {
val numberString: String = "123"
val numberInt: Int = numberString.toInt() // String'den Int'e dönüşüm
println(numberInt)
}
```
Burada, `toInt()` fonksiyonunu kullanarak `String` türündeki değeri `Int` türüne dönüştürdük ve işlem sorunsuz şekilde gerçekleşti.
Sonuç olarak
Her yazılım geliştiricisi zaman zaman bu hatayla karşılaşır, ancak çözümü oldukça basittir. Sadece türlerinizi doğru yönetin ve Kotlin'in sunduğu güçlü tip güvenliği özelliklerinden tam anlamıyla faydalanın.