Sobes.tech
Junior

Koje pomoćne funkcije poznajete ili ste koristili u svom iskustvu?

sobes.tech АИ

Одговор од АИ

  • Lambda izrazi: Skracuju kod za male funkcije-obrasce, na primer, klikove ili povratne pozive.

  • Extension Functions (Kotlin): Dodaju nove funkcije postojećim klasama bez nasleđivanja, poboljšavajući čitljivost i pogodnost.

    fun String.isPalindrome(): Boolean {
        // Proverava da li je string palindrom
        return this == this.reversed()
    }
    
  • Inline Functions (Kotlin): Ugrađuju telo funkcije na mesto poziva, smanjujući troškove kreiranja objekta funkcije, posebno korisno sa lambda izrazima.

    inline fun measureExecutionTime(block: () -> Unit) {
        // Meri vreme izvršavanja bloka koda
        val startTime = System.currentTimeMillis()
        block()
        val endTime = System.currentTimeMillis()
        println("Vreme izvršavanja: ${endTime - startTime} ms")
    }
    
  • Data Classes (Kotlin): Automatski generišu equals(), hashCode(), toString(), copy(), što je zgodno za skladištenje podataka.

    data class User(val name: String, val age: Int)
    
  • Sealed Classes (Kotlin): Predstavljaju ograničenu hijerarhiju klasa, korisne za modeliranje stanja ili događaja, posebno u kombinaciji sa when operatorom.

  • Generics: Omogućavaju kreiranje ponovo upotrebljivih komponenti koje rade sa različitim tipovima podataka.

    public class Box<T> {
        // Generička klasa za skladištenje bilo kog tipa podataka
        private T data;
    
        public void setData(T data) {
            this.data = data;
        }
    
        public T getData() {
            return data;
        }
    }
    
  • Operacije sa kolekcijama (map, filter, reduce i dr.): Funkcionalne metode za obradu kolekcija podataka.

    val numbers = listOf(1, 2, 3, 4, 5)
    val squaredEvenNumbers = numbers
        .filter { it % 2 == 0 } // Filtriranje parnih
        .map { it * it }      // Podizanje na kvadrat
    
  • Resource getters (Kotlin): Za dobijanje stringova, boja, dimenzija i sl. iz resursa.

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

    val name: String? = null
    val length = name?.length ?: 0 // Siguran poziv i operator Elvis