Sobes.tech
Junior

Kuras palīgfunkcijas jūs zināt vai esat izmantojis savā pieredzē?

sobes.tech AI

Atbilde no AI

  • Lambdas izteiksmes: Saīsinās kodu mazām funkcijām-apstrādātājiem, piemēram, klikšķiem vai atpakaļzvaniem.

  • Extension Functions (Kotlin): Pievieno jaunas funkcijas esošajām klasēm bez to mantošanas, uzlabojot lasāmību un ērtību.

    fun String.isPalindrome(): Boolean {
        // Pārbauda, vai virkne ir palindroms
        return this == this.reversed()
    }
    
  • Inline Functions (Kotlin): Iekļauj funkcijas ķermeni vietā, kur tā tiek izsaukta, samazinot izveides izmaksas, īpaši ar lambda izteiksmēm.

    inline fun measureExecutionTime(block: () -> Unit) {
        // Mēra izpildes laiku
        val startTime = System.currentTimeMillis()
        block()
        val endTime = System.currentTimeMillis()
        println("Izpildes laiks: ${endTime - startTime} ms")
    }
    
  • Data Classes (Kotlin): Automātiski ģenerē equals(), hashCode(), toString(), copy(), kas ir ērti datu glabāšanai.

    data class User(val name: String, val age: Int)
    
  • Sealed Classes (Kotlin): Ierobežota mantošanas hierarhija, noderīga stāvokļu vai notikumu modelēšanai, īpaši ar when operatoru.

  • Generics: Ļauj izveidot atkārtoti lietojamas komponentes, kas darbojas ar dažādiem datu tipiem.

    public class Box<T> {
        // Vispārējs klases veids datu glabāšanai
        private T data;
    
        public void setData(T data) {
            this.data = data;
        }
    
        public T getData() {
            return data;
        }
    }
    
  • Operācijas ar kolekcijām (map, filter, reduce un citi): Funkcionālas metodes datu kolekciju apstrādei:

    val numbers = listOf(1, 2, 3, 4, 5)
    val squaredEvenNumbers = numbers
        .filter { it % 2 == 0 } // Filtrē pāra skaitļus
        .map { it * it }      // Pakļauj kvadrātam
    
  • Resource getters (Kotlin): Lai iegūtu virknes, krāsas, izmērus un citus resursus:

    val appName = context.getString(R.string.app_name)
    val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary)
    
  • Nullable types and safe calls (Kotlin): Samazina NullPointerException skaitu:

    val name: String? = null
    val length = name?.length ?: 0 // Droša izsaukšana un Elviss operators