E na aula de hoje, vamos aprender sobre como usar lambda. As expressões lambda nos permitem fazer cálculos diretamente em linhas de códigos e invocá-los, enviando-lhes diferentes parâmetros usando a interface. Vamos dar uma olhada em algum código e veja como é. Desta vez, estamos em nosso compilador GDB online. E temos um programa que usa algumas expressões lambda. Vamos executá-lo primeiro e ver o que ele faz. Clique em Executar. E como você pode ver, nós temos uma calculadora. Zero para sair do programa, um, dois, três, quatro para adição, subtração, multiplicação e divisão. Se eu apertar o número um, ele vai me pedir para inserir dois números para somar. Eu vou entrar dois e um sete, e me dá uma resposta que diz que dois mais sete é igual a nove. Se eu fizer a subtração, esse é o número dois, ele me pedirá novamente para inserir dois números. Desta vez, vou inserir sete e dois e me dá a resposta sete menos dois igual a cinco. Se eu quiser fazer alguma multiplicação, esse é o número três. Ele vai me pedir para inserir dois números para multiplicar. Vamos usar alguns números maiores. 75 vezes 100. E diz que 75 vezes 100 é igual a 7.500. Finalmente, o número quatro é a divisão. E ele me pede para inserir dois números para dividir. Bem, eu vou pegar o número 10 e vou dividir por zero. Assim que eu dividir por zero, diz que zero não pode ser dividido em 10, insira um novo divisor. Se eu entrar um quatro, 10 dividido por 4 é igual a 2. Novamente, não estamos lidando com frações aqui, embora pudéssemos se quiséssemos. Se eu mudar isso e fez divisão mais uma vez, e disse que gostaria de dividir quatro e divida por sete, diz que sete não podem ser divididos em quatro. Devo usar um novo divisor. O segundo número digitado deve ser menor que o primeiro número. Então eu vou entrar dois e me diz que quatro dividido por dois é igual a dois. Finalmente, quando o programa termina, Eu digito um zero para sair e diz obrigado para usar a Calculadora da Cidade do Conhecimento. Bem, agora que você viu o programa rodar, vamos dar uma olhada no código que o faz rodar. Começo declarando um scanner e isso vai me permitir inserir alguns números. Eu tenho minha classe principal, e na minha classe principal, e isso é fundamental para usar lambda de Java, Eu tenho duas interfaces. E a interface é a coisa que me permite enviar parâmetros a diferentes funções. Neste caso, tenho uma interface chamada doTheMath, e eu declaro uma função dentro de doTheMath chamado addSubMultDiv que aceita dois argumentos, ambos inteiros. E retorna um inteiro. Minha outra interface aceita uma string isso é uma mensagem e isso vai me permitir para imprimir informações no console. Então essas duas interfaces são a coisa certa isso fará com que nossas expressões lambda Java funcionem. Eu também declaro uma função chamado operar onde vou pegar o int que vou chamar de a, o int que vou chamar de b, doTheMath e texto. E a ideia aqui é que vou invocar essas duas coisas com base em quais parâmetros são enviados para esta função. Eu entro na minha rotina de discussão principal, e eu tenho meus quatro recursos da calculadora, e cada vez estou ligando para doTheMath. E estou configurando para que faça adição simplesmente somando x mais y juntos, x vezes y, x dividido por y ou x menos y. Eu configurei um novo objeto da minha calculadora, crie meu scanner e declare as variáveis que vou precisar para o programa. A próxima área me permite colocar um menu na tela. Eu coloquei isso em um loop while para que apareça enquanto a resposta for fornecida é maior que zero. Assim que eles digitarem um zero para sair do programa, o loop while para e o programa termina. Assim que eu obtiver a resposta deles, um, dois, três ou quatro, Eu uso uma instrução switch para descobrir como processar essa resposta e chame o item correto. Usaremos a saída primeiro. Esse é o número zero e vou enviar uma mensagem para minha interface de fala dizendo ao usuário obrigado para usar a Calculadora da Cidade do Conhecimento. E eu vou enviar essa mensagem. Caso digitem um, Vou pedir-lhes para entrar em dois números. E eu vou somar esses números juntos, e depois imprima a resposta e aqui é onde o Java lambda funciona perfeitamente. Eu posso chamar essa rotina, calc.operate num1, num2 e o fato de eu querer somar esses números. O que estou fazendo aqui neste Java lambda é que estou simplificando meu código, caso contrário eu teria que criar uma função para cada um desses itens. E enquanto você pode dizer bem, são apenas quatro itens, não é grande coisa, pode chegar um momento em que você precisa de muitos, muitos outros itens, e ter uma função disponível que aceita vários parâmetros e diferentes operações para fazer você economiza muito de tempo na codificação. O resto do programa funciona praticamente da mesma maneira. O código para cada uma dessas operações, somar, subtrair, multiplicar e dividir é exatamente o mesmo exceto para dividir onde eu tenho um cheque para ter certeza que o número dois não é maior que o número um porque eu não quero dividir um número maior em um número menor. E não posso usar zero como um número pelo qual estou dividindo. Então, se qualquer uma dessas condições for verdadeira, Eu emito uma mensagem de erro que diz que não podemos fazer isso. Insira um novo divisor. Quando eles digitam um número aceitável, o sistema passa e chama o calc.operate e envia a função de divisão. Agora você sabe como usar uma interface para criar uma expressão lambda Java, e, em seguida, chame essa expressão com base no que você quer fazer no programa.