Kotlin dilinde null güvenliğinin ne olduğunu açıklayın.
sobes.tech yapay zeka
AI'dan gelen yanıt
Null güvenliği — Kotlin dilinin, null referanslarıyla ilgili hataları önleyen bir özelliğidir. Bu, iki tür referans oluşturularak sağlanır: nullable (null kabul eder) ve non-nullable (null kabul etmez).
Non-nullable türler alışıldığı gibi tanımlanır:
var nonNullableString: String = "Hello" // null olamaz
Nullable türler, tür adından sonra ? sembolü kullanılarak tanımlanır:
var nullableString: String? = "Hello" // null olabilir
nullableString = null
Kotlin, nullable türlere açık bir şekilde işlem yapılmasını zorunlu kılar, böylece null kontrolü olmadan doğrudan üyelere erişim engellenir. Bunun için aşağıdaki mekanizmalar sağlanmıştır:
-
Güvenli çağrı operatörü (
?.): Nesnenulldeğilse, metod çağrısı veya özellik erişimi yapar; aksi takdirdenulldöner.val length = nullableString?.length // length `Int?` veya `null` olur -
Elvis operatörü (
?:): Sol taraftaki ifadenullise, varsayılan bir değer sağlar.val nonNullLength = nullableString?.length ?: 0 // `nonNullLength` `Int`, nullableString null ise 0 -
!!operatörü (null olmayan onay operatörü): Nullable türü non-nullable yapar; eğer değernullise,NullPointerExceptionfırlatır. Bu, geliştiricinin değerinnullolmadığından emin olduğu durumlar içindir.val sureLength = nullableString!!.length // nullableString null ise NullPointerException fırlatır -
ifkontrolleri: Gelenekselnullkontrolü ileifkullanılır. Derleyici,ifbloğu içinde nullable tipi non-nullable olarak akıllı şekilde dönüştürür, eğer kontrol geçerse.if (nullableString != null) { val length = nullableString.length // Burada nullableString String olarak kabul edilir }
Bu mekanizmalar, bir değişkenin null olabileceği durumları açıkça yönetmeye olanak tanır ve çalışma zamanında NullPointerException olasılığını önemli ölçüde azaltır.