Quais funções auxiliares você conhece ou usou na sua experiência?
sobes.tech IA
Resposta da IA
-
Expressões lambda: Reduzem o código para funções pequenas, como manipuladores de cliques ou callbacks.
-
Funções de extensão (Kotlin): Adicionam novas funções às classes existentes sem herança, melhorando a legibilidade e a conveniência.
fun String.isPalindrome(): Boolean { // Verifica se a string é um palíndromo return this == this.reversed() } -
Funções inline (Kotlin): Inserem o corpo da função no local da chamada, reduzindo a sobrecarga de criar objetos de função, especialmente útil com lambdas.
inline fun measureExecutionTime(block: () -> Unit) { // Mede o tempo de execução do bloco de código val startTime = System.currentTimeMillis() block() val endTime = System.currentTimeMillis() println("Tempo de execução: ${endTime - startTime} ms") } -
Classes de dados (Kotlin): Geram automaticamente
equals(),hashCode(),toString(),copy(), útil para armazenar dados.data class User(val name: String, val age: Int) -
Classes seladas (Kotlin): Representam uma hierarquia limitada de classes, úteis para modelar estados ou eventos, especialmente em combinação com
when. -
Genéricos: Permitem criar componentes reutilizáveis que trabalham com diferentes tipos de dados.
public class Box<T> { // Classe genérica para armazenar qualquer tipo de dado private T data; public void setData(T data) { this.data = data; } public T getData() { return data; } } -
Operações com coleções (map, filter, reduce, etc.): Métodos funcionais para processar coleções de dados.
val numbers = listOf(1, 2, 3, 4, 5) val squaredEvenNumbers = numbers .filter { it % 2 == 0 } // Filtra os pares .map { it * it } // Eleva ao quadrado -
Getters de recursos (Kotlin): Para obter strings, cores, tamanhos, etc., de recursos.
val appName = context.getString(R.string.app_name) val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary) -
Tipos nulos e chamadas seguras (Kotlin): Reduzem a quantidade de
NullPointerException.val name: String? = null val length = name?.length ?: 0 // Chamada segura e operador Elvis