Kotlin’de Değişkenleri Nasıl Tanımlarız? val ve var Arasındaki Fark Nedir?

Adile Güngör ♾️ 🌎
2 min readAug 26, 2024

--

Kotlin’de değişken tanımlarken iki anahtar kelime kullanılır: val ve var. Bu iki kelime arasındaki temel fark, değişkenin değerinin değiştirilip değiştirilemeyeceği ile ilgilidir.

Photo by charlesdeluvio on Unsplash
  • val: Bu anahtar kelime ile tanımlanan bir değişken immutable (değişmez) olarak kabul edilir. Yani, bir kez atandığında değeri değiştirilemez. val ile tanımlanan değişkenler, sabit değerler veya bir kez atanıp bir daha değiştirilmesi gerekmeyen değişkenler için idealdir. Örneğin:
  • val pi = 3.1
  • Bu durumda pi değişkenine 3.14 değeri atanır ve bu değer, program boyunca değiştirilemez.
  • var: Bu anahtar kelime ile tanımlanan bir değişken mutable (değiştirilebilir) olarak kabul edilir. Yani, atanan değer gerektiğinde değiştirilebilir. Örneğin
  • var count = 0 count = 1
  • Bu örnekte count değişkeni önce 0 olarak atanmış, ardından 1 olarak güncellenmiştir.

Kotlin’de Nullable Türler ve Safe Call Operatörleri Nasıl Kullanılır?

Kotlin, NullPointerException hatalarını önlemek için güçlü bir null safety mekanizması sunar. Bu mekanizma sayesinde, bir değişkenin null değer alıp almayacağı belirli hale getirilir.

  • Nullable Türler: Bir değişkenin null değer alabileceğini belirtmek için türün sonuna ? işareti eklenir. Örneğin:
  • var name: String? = null
  • Bu durumda, name değişkeni ya bir String değeri ya da null olabilir. Eğer bu ? işareti kullanılmazsa, Kotlin derleyicisi null atamasına izin vermez.
  • Safe Call Operatörü: Bir nullable tür üzerinde işlem yaparken ?. operatörü kullanılarak, null kontrolü manuel olarak yapılmadan güvenli bir çağrı yapılabilir. Örneğin:
  • val length = name?.length
  • Bu durumda, eğer name null ise length değişkeni de null olur. Eğer name null değilse, length değişkeni name'in uzunluğunu alır. Bu sayede NullPointerException hatalarının önüne geçilmiş olur.

Kotlin’de data class Nedir ve Ne Zaman Kullanılır?

Kotlin’de data classlar, veriyi temsil eden sınıflar için kullanılır ve otomatik olarak bazı işlevler sağlar. Bu işlevler arasında equals(), hashCode(), toString(), copy() ve componentN() gibi metotlar bulunur.

  • Örnek:
  • data class User(val name: String, val age: Int)
  • Bu örnekte User adlı bir data class tanımlanmıştır. Bu sınıf, iki temel özellik olan name ve age'i içerir. data class’lar, özellikle veri taşımak veya veriyi modellemek için kullanıldığında çok yararlıdır. copy() metodu, mevcut bir nesnenin bir kopyasını oluştururken sadece belirli alanları değiştirmek için kullanışlıdır:
  • val user1 = User("Alice", 25) val user2 = user1.copy(age = 26
  • Bu kodda, user1'in bir kopyası oluşturulmuş ve sadece age değeri 26 olarak değiştirilmiştir.

Ekstra Bilgiler

Sealed Class: Kotlin’de sealed class, belirli bir hiyerarşideki sınıfların oluşturulmasını sağlar. Bu sınıflar, sadece aynı dosyada tanımlanabilir. Bu sayede, belirli bir sınıf hiyerarşisini kapalı tutmak ve dışarıdan genişletilmesini önlemek için kullanılır.

Enum Class: enum classlar, sabit değerler kümesini temsil eder. Örneğin, bir haftanın günlerini temsil etmek için kullanılabilir:

enum class DayOfWeek {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY

--

--