(Java) -> Como funciona a notação Lambda
- #Java
Em Java, a expressão lambda é uma nova característica introduzida na versão 8 da linguagem. Ela permite criar funções anônimas com sintaxe mais concisa e expressiva.
Uma expressão lambda em Java é composta por três partes principais:
- Argumentos: Uma lista de argumentos separados por vírgulas, que especifica os parâmetros que a expressão lambda recebe. Esses parâmetros podem ter tipos explícitos ou podem ser inferidos pelo compilador.
- Setas: O operador "->" separa os argumentos da expressão lambda do corpo da função.
- Corpo: O corpo da função contém a expressão que define a ação a ser realizada pela função. Esse corpo pode ser uma única expressão ou um bloco de código encapsulado em chaves "{}".
Um exemplo de expressão lambda simples em Java seria:
(x, y) -> x + y
Neste exemplo, a expressão lambda recebe dois argumentos "x" e "y", separados por vírgula, e retorna a soma de "x" e "y".
A expressão lambda pode ser atribuída a uma variável do tipo de uma interface funcional. Uma interface funcional é uma interface que define um único método abstrato. Essa interface pode ser definida pelo próprio programador ou pode ser uma das interfaces funcionais pré-definidas em Java, como a interface "java.util.function.Consumer" ou "java.util.function.Predicate".
Por exemplo, suponha que tenhamos uma interface funcional "Operacao" que define um único método abstrato "calcular", que recebe dois números inteiros e retorna um valor inteiro:
interface Operacao {
int calcular(int x, int y);
}
Agora podemos usar uma expressão lambda para implementar essa interface:Agora podemos usar uma expressão lambda para implementar essa interface:
Operacao soma = (x, y) -> x + y;
Operacao subtracao = (x, y) -> x - y;
Neste exemplo, usamos as expressões lambda para criar duas instâncias da interface "Operacao", uma para realizar a soma de dois números e outra para realizar a subtração.
Finalmente, podemos chamar o método "calcular" da interface "Operacao" passando os argumentos necessários:
int resultadoSoma = soma.calcular(2, 3); // resultadoSoma = 5
int resultadoSubtracao = subtracao.calcular(5, 3); // resultadoSubtracao = 2