Menu
Coddy logo textTech

Passando Funções

Parte da seção Lógica e Fluxo do Journey de Kotlin da Coddy. Lição 28 de 63.

Uma função de ordem superior aceita um valor de função ou retorna um. Declare um parâmetro de função com um tipo de função e, em seguida, chame-o dentro da função auxiliar. Se o argumento final for uma lambda, o Kotlin permite colocar suas chaves após os parênteses da chamada.

fun applyTwice(n: Int, operation: (Int) -> Int): Int {
    return operation(operation(n))
}

Dentro de main:

println(applyTwice(2) { it + 3 })

A primeira chamada transforma dois em cinco; a segunda transforma cinco em oito.

Um parâmetro de função pode ser chamado repetidamente com resultados intermediários.

challenge icon

Desafio

Médio

Complete twiceDouble com o parâmetro value: Int. Use o auxiliar applyTwice fornecido e uma lambda de duplicação. Retorne o resultado após aplicar a operação de duplicação duas vezes.

A menos que limites mais rigorosos sejam especificados acima, as coleções contêm no máximo 100 elementos em cada nível, e os argumentos inteiros e os valores inteiros das coleções estão entre -1000 e 1000. O texto fornecido para análise pode incluir representações inválidas ou fora do intervalo, conforme descrito.

Retorne um valor do tipo Int. Mantenha o código de entrada/saída fornecido. Ele lê argumentos escalares, um por linha; uma lista começa com sua quantidade, seguida por seus elementos, e um mapa começa com a quantidade de entradas, seguida por cada chave e valor. Listas aninhadas repetem o formato de quantidade e elementos para cada linha. O main fornecido imprime o valor retornado seguido por uma nova linha. As listas usam o formato padrão entre colchetes do Kotlin; não imprima rótulos adicionais.

Experimente você mesmo

fun applyTwice(n: Int, operation: (Int) -> Int): Int {
    return operation(operation(n))
}
fun twiceDouble(value: Int): Int {
    // Escreva sua solução aqui.
    return 0
}
fun main() {
    val value = readln().toInt()
    println(twiceDouble(value))
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo

Pratique por conta própria: Playground de Kotlin