JavaRush /Blogue Java /Random-PT /Pausa para café #150. Vamos estudar exemplos de expressõe...

Pausa para café #150. Vamos estudar exemplos de expressões lambda em Java. 7 recursos mais subestimados do IntelliJ IDEA

Publicado no grupo Random-PT

Aprendendo exemplos de expressões lambda em Java

Fonte: Médio Neste artigo, veremos as expressões lambda, a base da programação funcional em Java. Pausa para café #150.  Vamos estudar exemplos de expressões lambda em Java.  7 recursos mais subestimados do IntelliJ IDEA - 1

Sintaxe de Expressão Lambda

A sintaxe das expressões lambda é intuitiva, fácil de entender e usar. Uma expressão lambda consiste em:
  1. parâmetros de entrada
  2. seta do operador
  3. bloco de expressões/declarações
O formato geral é:
<input-params> -> <function-code>

Exemplos de expressões lambda

As expressões lambda são melhor compreendidas por meio de exemplos, então vejamos algumas delas.

1. Não aceita entrada e não retorna saída

Uma expressão lambda simples não aceita nenhuma entrada e não retorna nenhuma saída – é literalmente apenas um bloco de código executado sem qualquer contexto.
() -> System.out.println("Here I am!");
Especificar () no início, na posição dos parâmetros de entrada, significa que nenhum parâmetro será passado (como acontece com parênteses vazios que seguem um método que não possui parâmetros).

2. Aceita entrada única, não retorna saída

Para fazer com que uma expressão lambda receba um parâmetro, colocamos-o na posição dos parâmetros de entrada:
name -> System.out.println("Here you are too, " + name +  "!");
OBSERVAÇÃO : Se tivermos um parâmetro de entrada, podemos omitir os parênteses. Também podemos especificar (nome), isso é totalmente aceitável.

3. Aceita múltiplas entradas, não retorna nenhuma saída

Quando passamos vários parâmetros de entrada para uma expressão lambda, devemos:
  • coloque os parâmetros entre parênteses
  • use vírgula para separar entre eles
(name, food) -> System.out.println("So " + name + " enjoys eating " + food + "... interesting!");

4. Contém várias instruções em uma seção de código

Armazenar expressões lambda em instruções de uma linha é considerado uma boa prática. Mas você também pode usar várias linhas:
() -> {
  System.out.println("The owl and the pussycat went to sea");
  System.out.println("in a beautiful pea green boat");
}

5. Os tipos de retorno nunca são especificados

Como você deve ter notado, ao definir uma expressão lambda, nenhum tipo de retorno é especificado. Aqui está um exemplo:
() -> System.out.println("I don't return anything!")
E mais um:
() -> "I return this String!"
Ambos os exemplos de código são quase iguais, mas o segundo lambda retorna uma string. Tenha isso em mente ao usá-los. É claro que o compilador entenderá a diferença entre eles através do uso condicional de descritores de função.

6. A inferência de tipo é aplicada automaticamente sempre que possível

Para determinar o tipo, o compilador usará inferência de tipo. Para fazer isso, analisa o contexto de execução da expressão lambda. Para o desenvolvedor, isso significa que ele não precisará se preocupar em transmitir para um tipo específico.

7. Notação do descritor de função

Quando pensamos sobre a quais tipos uma expressão lambda pode ser atribuída, é muito útil usar descritores de função. Um identificador de função é essencialmente uma assinatura de método fornecida por uma expressão (ou método) lambda. Sua sintaxe é quase a mesma das expressões lambda, exceto que em vez de uma seção de código, há uma seção de tipo de saída. Aqui está um exemplo:
<input-parameter-types> -> <output-parameter-type>

Exemplos de descritores de função

Aqui estão alguns exemplos de descritores de função: () -> () Um método que não aceita parâmetros de entrada e não retorna um valor. (String) -> () Método que aceita parâmetro de entrada e não retorna valor. () -> (int, float) Um método que não aceita parâmetros de entrada e retorna um int e um float(int[]) -> . (SortedMap<Character, Integer>) Método que pega um array int e retorna um SortedMap de Character para Integer . Ter descritores de função facilita a avaliação da compatibilidade de tipos ao considerar quais tipos de destino podemos usar para uma expressão lambda.

Conclusão

Como você pode ver, as expressões lambda são uma maneira simples e organizada de encapsular o comportamento. É um dos fundamentos do paradigma de programação funcional introduzido em Java com o lançamento do JDK 8.

7 recursos mais subestimados do IntelliJ IDEA

Fonte: Better Programming É difícil de acreditar, mas muitos anos depois ainda encontro pessoas que não conhecem esses excelentes recursos do IntelliJ IDEA.

1. Encontre qualquer coisa

É muito difícil lembrar cada combinação de teclas e acompanhar tudo o que o IntelliJ IDEA pode fazer. É por isso que costumo usar a pesquisa dentro do IntelliJ IDEA. Isso me ajuda a encontrar os itens de menu, ferramentas, configurações e até mesmo os arquivos necessários em um só lugar. Pausa para café #150.  Vamos estudar exemplos de expressões lambda em Java.  7 recursos mais subestimados do IntelliJ IDEA - 2

2. Saiba onde você está

Antes de encontrar esse recurso, usei o botão “Selecionar arquivo aberto” para exibir o arquivo atualmente editado na árvore do projeto. Pausa para café #150.  Vamos estudar exemplos de expressões lambda em Java.  7 recursos mais subestimados do IntelliJ IDEA - 3Agora o IntelliJ IDEA faz isso por mim. Esta não é uma opção padrão, portanto você precisará defini-la para cada projeto novo ou existente. Pausa para café #150.  Vamos estudar exemplos de expressões lambda em Java.  7 recursos mais subestimados do IntelliJ IDEA - 4

3. Otimização SQL

Você sabia que o plugin de banco de dados padrão no seu IDE é mais do que um simples executor SQL? Dado que a camada de persistência (E/S) é sempre a parte mais lenta da aplicação, sempre me certifico de que minhas consultas SQL tenham um bom plano de execução ao trabalhar com bancos de dados relacionais. Pausa para café #150.  Vamos estudar exemplos de expressões lambda em Java.  7 recursos mais subestimados do IntelliJ IDEA - 5

4. Edição multilinha

Você pode ter usado esse recurso no Sublime Text Editor antes. Pausa para café #150.  Vamos estudar exemplos de expressões lambda em Java.  7 recursos mais subestimados do IntelliJ IDEA - 6

5. Voltar/Avançar

Na verdade, muitas vezes volto para onde estava antes pressionando os botões Voltar ou Avançar. Pausa para café #150.  Vamos estudar exemplos de expressões lambda em Java.  7 recursos mais subestimados do IntelliJ IDEA - 7Voltar/avançar: ⌥⌘+seta para esquerda/direita (Ctrl+Alt+seta para esquerda/direita para Win/Linux). Para abrir arquivos recentes, pressione ⌘E (Ctrl+E para Win/Linux).

6. Marcadores

Eu marquei partes importantes do código para poder consultá-las rapidamente a qualquer momento. Pausa para café #150.  Vamos estudar exemplos de expressões lambda em Java.  7 recursos mais subestimados do IntelliJ IDEA - 8Para ir para um favorito, pressione ⌃+<número> (Ctrl+<número> para Win/Linux). Direi desde já que não uso mais do que três marcadores por vez, porque fica difícil lembrar para que servem.

7. Um editor para tudo

Eu costumava abrir outros editores de texto como Visual Studio Code ou Sublime para salvar partes do código, JSON, XML e depois vincular a eles. Mas isso não faz parte da base de código (projeto), e o IntelliJ IDEA lembra claramente disso quando você tenta criar ou editar algo assim. Então vi um dos meus colegas usando Snippets e percebi o quão genial era. Pausa para café #150.  Vamos estudar exemplos de expressões lambda em Java.  7 recursos mais subestimados do IntelliJ IDEA - 9Novo arquivo de trecho: ⇧⌘N (Shift+Ctrl+N para Win/Linux). Os snippets estão disponíveis e sincronizados em todas as janelas dos seus projetos. Costumo usá-los para examinar e formatar algum JSON ou SQL que obtive de outro lugar.

Minha receita secreta

A cereja do bolo é um recurso que me economiza muito tempo de digitação todos os dias: Tabnine é um plugin JetBrains para compilar código Intellij IDEA com tecnologia de IA. Por enquanto é grátis, mas se apresse, não acho que vai durar muito.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION