Kotlin’de Sabitler ve değişkenler

Estimated read time 3 min read

Kotlin programlama dilinde değişkenleri tanımlama ve değer atama konusuna bir önceki yazımızda giriş yapmıştık. Bu yazımızda const ve val ile değer atamaya daha yakından bakacağız.

val değişkenler

Aşağıdaki kod, pi sabit sayısını içeren bir tam sayı ve helloMsg isimli bir String değerini içeren iki adet değişken tanımlamaktadır. Bu değerler ilk atanmalarından sonra tekrar değiştirilemezler.

fun main() {
    val pi = 3.1415
    val helloMsg = "Hello"

    println(pi)       // 3.1415
    println(helloMsg) // Hello
}

val anahtar kelimesi ile tanımlanmış ve ilk değeri atanmış pi değişkenine yeni bir değer atamaya çalışalım. Aşağıdaki örnekte görüldüğü gibi pi sayısına yeni bir değer atamak istediğimizde “Val cannot be reassigned” hatası alırsınız.

fun main() {
val pi = 3.1415
val helloMsg = "Hello"

println(pi) // 3.1415
println(helloMsg) // Hello

pi = 3.1416 // Val cannot be reassigned
}

val ile tanımlanmış ancak ilk değeri atanmamış yani başlangıcı yapılmamış bir değişkeni komutlarınızda kullanamazsınız. Bunu bir örnekle açıklayalım. Aşağıdaki kod ile boolFalse isimli değişken val ile tanımlanmış ancak türü Boolean olarak belirtilse de ilk değeri (True veya False) atanmadığından “Variable ‘boolFalse’ must be initialized” hata mesajını alırsınız.

val boolFalse: Boolean
println(boolFalse) // error line

Doğru kullanım aşağıdaki gibi olmalıdır.

val boolFalse: Boolean // not initialized
    boolFalse = false      // initialized
    println(boolFalse)     // no errors here

const değişkenler

Kotlin programlamada const anahtar kelimesi ile val ifadesinin birlikte tanımlandığı bir sabit değer atama yöntemi bulunmaktadır. Bu yöntem ile sabit değer, program kodları derlenirken oluşturulur ve bir daha değiştirilemez. Kural olarak const biçiminde tanımlanan değişkenlerin isimlerinin tamamının BÜYÜK HARF olması tavsiye edilir.

const val WRITER_NAME = "JOHN DOE"

Bu şekilde sabit değer tanımlamanın bazı kuralları bulunmaktadır.

  • Sabit değerlere yalnızca String ve birincil türler dediğimiz INT, CHAR, DOUBLE, BOOLEAN veri tipleri atanabilir. Aşağıda buna ait bir örnek gösterilmektedir.
  • Sabitler, fonksiyonların en dışında tanımlanmalıdır. Fonksiyon içerisinde const ifadesi ile tanımlanamazlar.
const val CONST_INT = 256
const val CONST_DOUBLE = 3.14
const val CONST_CHAR = 'f'
const val CONST_STRING = "I am constant"
const val CONST_ARRAY = arrayOf(1, 2, 3) // error: only primitives and strings are allowed
fun main() {
    println(CONST_INT)
    println(CONST_STRING)

}

Bu açıklamalar ve kurallar başlangıçta bir miktar karışık gelmiş olabilir. Bunların, yazılan kodun doğru ve hatasız çalışması için gerekli olduğunu unutmayın. Pratik yaptıkça bu kuralları daha yakından tanıyacaksınız.

Blog Writer

Yazar, bilişim ve teknoloji alanında derlediği faydalı içerikleri bu blogta paylaşmaktadır.