Deneyiminizde bildiğiniz veya kullandığınız yardımcı fonksiyonlar nelerdir?
sobes.tech yapay zeka
AI'dan gelen yanıt
-
Lambda İfadeleri: Küçük fonksiyonlar için kodu kısaltır, örneğin tıklama veya geri çağırma işlemleri.
-
Genişletme Fonksiyonları (Kotlin): Var olan sınıflara yeni fonksiyonlar ekler, kalıtım olmadan okunabilirliği ve kullanışlılığı artırır.
fun String.isPalindrome(): Boolean { // Dizinin palindrom olup olmadığını kontrol eder return this == this.reversed() } -
İç İçe Fonksiyonlar (Kotlin): Fonksiyon gövdesini çağrı yerine yerleştirir, bu da fonksiyon nesnesi oluşturma maliyetini azaltır, özellikle lambda ile kullanıldığında faydalıdır.
inline fun measureExecutionTime(block: () -> Unit) { // Kod bloğunun çalışma süresini ölçer val startTime = System.currentTimeMillis() block() val endTime = System.currentTimeMillis() println("İşlem süresi: ${endTime - startTime} ms") } -
Veri Sınıfları (Kotlin):
equals(),hashCode(),toString(),copy()fonksiyonlarını otomatik olarak üretir, veri saklama için kullanışlıdır.data class User(val name: String, val age: Int) -
Kapalı Sınıflar (Kotlin): Sınıf hiyerarşisini sınırlar, durumları veya olayları modellemek için kullanışlıdır, özellikle
whenile birlikte. -
Generics: Farklı veri tipleriyle çalışan yeniden kullanılabilir bileşenler oluşturmayı sağlar.
public class Box<T> { // Herhangi bir veri tipini saklamak için genel sınıf private T data; public void setData(T data) { this.data = data; } public T getData() { return data; } } -
Koleksiyonlar Üzerinde İşlemler (map, filter, reduce vb.): Veri koleksiyonlarını işlemek için fonksiyonel metodlar.
val numbers = listOf(1, 2, 3, 4, 5) val squaredEvenNumbers = numbers .filter { it % 2 == 0 } // Çiftleri filtrele .map { it * it } // Karelerini al -
Kaynak Getiriciler (Kotlin): Kaynaklardan string, renk, boyut gibi değerleri almak için.
val appName = context.getString(R.string.app_name) val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary) -
Nullable Tipler ve Güvenli Çağrılar (Kotlin):
NullPointerExceptionsayısını azaltır.val name: String? = null val length = name?.length ?: 0 // Güvenli çağrı ve Elvis operatörü