DEV Community

FUNDAMENTOS JAVA
FUNDAMENTOS JAVA

Posted on

Expressões lambda de bloco

Corpo de expressão: É o tipo de corpo de expressão lambda mais simples, composto por uma única expressão. O código à direita do operador lambda é uma única expressão que é automaticamente retornada.

Corpo de bloco: Diferente do corpo de expressão, o corpo de bloco permite múltiplas instruções. Isso amplia as operações que podem ser feitas com lambdas, como declarações de variáveis, laços, instruções if e switch. Para retornar um valor, é necessário usar explicitamente uma instrução return.

Exemplo de uso de corpo de bloco: Uma lambda de bloco pode ser usada para encontrar o menor fator positivo de um número inteiro, por meio de uma interface funcional como NumericFunc, que recebe um int e retorna um int.

// Uma lambda de bloco que encontra o menor fator positivo
// de um valor int.
interface NumericFunc {
int func(int n);
}
class BlockLambdaDemo {
public static void main(String args[])
{
// Esta lambda de bloco retorna o menor fator positivo de um valor.
// Uma expressão lambda de bloco
NumericFunc smallestF = (n) -> {
int result = 1;
// Obtém o valor absoluto de n.
n = n < 0 ? -n : n;
for(int i=2; i <= n/i; i++)
if((n % i) == 0) {
result = i;
break;
}
return result;
};
System.out.println("Smallest factor of 12 is " + smallestF.func(12));
System.out.println("Smallest factor of 11 is " + smallestF.func(11));
}
}

Saída:
Smallest factor of 12 is 2
Smallest factor of 11 is 1

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit