Sobes.tech
Junior

Welke hulpfuncties ken je of heb je in je ervaring gebruikt?

sobes.tech AI

Antwoord van AI

  • Lambda-uitdrukkingen: Verkorten de code voor kleine functies zoals klik- of callbackhandlers.

  • Extension functies (Kotlin): Voeg nieuwe functies toe aan bestaande klassen zonder er van te erven, wat de leesbaarheid en het gemak verbetert.

    fun String.isPalindrome(): Boolean {
        // Controleert of de string een palindroom is
        return this == this.reversed()
    }
    
  • Inline functies (Kotlin): Plaatst de body van de functie op de plaats van de aanroep, vermindert overhead bij het maken van functie-objecten, vooral handig met lambdas.

    inline fun measureExecutionTime(block: () -> Unit) {
        // Meet de uitvoeringstijd van de codeblok
        val startTime = System.currentTimeMillis()
        block()
        val endTime = System.currentTimeMillis()
        println("Uitvoertijd: ${endTime - startTime} ms")
    }
    
  • Data klassen (Kotlin): Genereren automatisch equals(), hashCode(), toString(), copy(), handig voor gegevensopslag.

    data class User(val name: String, val age: Int)
    
  • Gesloten klassen (Kotlin): Beperkte klassehiërarchie, handig voor het modelleren van toestanden of gebeurtenissen, vooral in combinatie met when.

  • Generics: Maken het mogelijk om herbruikbare componenten te creëren die werken met verschillende datatypes.

    public class Box<T> {
        // Generieke klasse voor het opslaan van elk datatype
        private T data;
    
        public void setData(T data) {
            this.data = data;
        }
    
        public T getData() {
            return data;
        }
    }
    
  • Operaties met collecties (map, filter, reduce, etc.): Functionele methoden voor het verwerken van datacollecties.

    val numbers = listOf(1, 2, 3, 4, 5)
    val squaredEvenNumbers = numbers
        .filter { it % 2 == 0 } // Filter even
        .map { it * it }      // Kwadrateer
    
  • Resource-getters (Kotlin): Voor het verkrijgen van strings, kleuren, groottes, etc. uit resources.

    val appName = context.getString(R.string.app_name)
    val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary)
    
  • Nullable types en veilige aanroepen (Kotlin): Vermindert NullPointerException-aantallen.

    val name: String? = null
    val length = name?.length ?: 0 // Veilige aanroep en Elvis-operator