Sobes.tech
Junior

Təcrübənizdə bildiyiniz və ya istifadə etdiyiniz köməkçi funksiyalar hansılardır?

sobes.tech Süni İntellekt

AI-dan cavab

  • Lambda ifadələri: Kiçik funksiyalar üçün kodu qısaldır, məsələn, kliklər və ya geri çağırışlar.

  • Genişləndirmə funksiyaları (Kotlin): Mövcud siniflərə yeni funksiyalar əlavə edir, irs almaq olmadan, oxumağı və rahatlığı artırır.

    fun String.isPalindrome(): Boolean {
        // Sətirin palindrom olub olmadığını yoxlayır
        return this == this.reversed()
    }
    
  • Inline funksiyalar (Kotlin): Funksiya bədənini çağırış yerinə yerləşdirir, bu da lambda ilə işləyərkən obyekt yaratma xərclərini azaldır.

    inline fun measureExecutionTime(block: () -> Unit) {
        // Kod blokunun icra vaxtını ölçür
        val startTime = System.currentTimeMillis()
        block()
        val endTime = System.currentTimeMillis()
        println("İcra vaxtı: ${endTime - startTime} ms")
    }
    
  • Məlumat sinifləri (Kotlin): equals(), hashCode(), toString(), copy() funksiyalarını avtomatik yaradır, məlumatların saxlanması üçün əlverişlidir.

    data class User(val name: String, val age: Int)
    
  • Qapalı siniflər (Kotlin): Sinif hierarhiyasını məhdudlaşdırır, vəziyyət və ya hadisələri modelləşdirmək üçün faydalıdır, xüsusən when ilə.

  • Generics: Fərqli məlumat tipləri ilə işləyən yenidən istifadə edilə bilən komponentlər yaratmağa imkan verir.

    public class Box<T> {
        // Hər hansı məlumat tipini saxlamaq üçün ümumi sinif
        private T data;
    
        public void setData(T data) {
            this.data = data;
        }
    
        public T getData() {
            return data;
        }
    }
    
  • Kolleksiyalar üzərində əməliyyatlar (map, filter, reduce və s.): Məlumat kolleksiyalarını işləmək üçün funksional metodlar.

    val numbers = listOf(1, 2, 3, 4, 5)
    val squaredEvenNumbers = numbers
        .filter { it % 2 == 0 } // Cütləri filtrləyir
        .map { it * it }      // Kvadratını alır
    
  • Resurslar üçün getterlər (Kotlin): Stringlər, rənglər, ölçülər və s. resurslardan almaq üçün.

    val appName = context.getString(R.string.app_name)
    val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary)
    
  • Nullable tiplər və təhlükəsiz çağırışlar (Kotlin): NullPointerException sayını azaldır.

    val name: String? = null
    val length = name?.length ?: 0 // Təhlükəsiz çağırış və Elvis operatoru