Método x closure
Upcoming SlideShare
Loading in...5
×
 

Método x closure

on

  • 272 views

Entenda as principais diferenças entre Método e Closure no Groovy!

Entenda as principais diferenças entre Método e Closure no Groovy!

Statistics

Views

Total Views
272
Views on SlideShare
272
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Método x closure Método x closure Presentation Transcript

  • MÉTODO X CLOSURE ENTENDENDO AS CLOSURES NO GROOVY – PARTE 1 println "Jonatas Emidio"
  • INÍCIO DA DÚVIDA Uma das coisas que mais tem me chamado a atenção no groovy é o seu suporte à closures. Logo passei a utiliza-las no lugar dos métodos, já que a principio a função era a mesma. No entanto me surgiu uma dúvida… Será que eu ganho ou perco desempenho utilizando- as na aplicação?
  • A BUSCA Iniciei as consultas no google e não tive muito sucesso, em seguida postei minha duvida no grails brasil e pouco depois já tinham várias respostas. Percebi que o conteúdo que estava sendo gerado era muito rico e tive a ideia de compilar todas essas informações em um post de fácil entendimento.
  • A SACADA Pois bem, para começar “métodos e closures” podem até trazer o mesmo resultado, mas eles não são a mesma coisa. Este artigo será dividido em 3 posts, pois o mesmo possui bastante conteúdo. Entendendo as Closures no Groovy; Método X Closure; Teste de desempenho com Closures e Métodos;
  • GROOVY IN ACTION Segundo o Livro Groovy in action: closures são importantes, muito importantes, são de longe um dos recursos mais importantes do groovy. Closure é um bloco de codígo encapsulado em um objeto. Definição tambem do Groovy in action.
  • EXEMPLO 1 Para os que estão acostumados com desenvolvimento java e já teve a oport unidade de escrever uma closure ,deve ter notado que seu fluxo lógico é diferente do tradicional, mas assim que nos acostumamos com o seu estilo de escrita os algoritmos fluem como água. Um simples exemplo de closure utilizado na documentação do groovy é o se guinte: <font color="#4a86e8">def </font>clos = { <b>print </b>“Hello”} <font color="#00ff00">// - clos2: Onde a closure recebera algum valor na sua chamad <font color="#4a86e8">def </font>clos2 = {<b>print </b>it}. clos2(‘Hello’) /*Onde o
  • TRABALHANDO COM LISTAS Também da documentação do groovy, temos dois exemplos bem interessantes de closures para listas. Suponha que você precise varrer uma determinada lista e aplicar alguma lógica em cada item antes de inseri-los em outra lista. Pois bem… Temos basicamente duas formas simples de fazerisso no groovy.
  • LISTA: IDEIA 1 1 – Podemos utilizar o collect aplicando a logica para cada item iterado: Definição: Foi criada uma lista com as vogais e uma lista vazia que rece berá o maiúsculo de cada vogal. Neste caso o collect é utilizado para aplicar a logica ao it (variável default no groovy para closures com apenas um par âmetro – neste caso uma outra lista) e inseri-lo na lista passada por pa râmetro. Logo no final teremos a seguinte lista ["A", "E" , "I", "O", "U"] <font color="#4a86e8"><br></font> <font color="#4a86e8">def </font>list = ['a','e','i''o','u'] <font color="#4a86e8">def </font>newList = [] list.<font color="#4a86e8">collect</font>( newList ) { it.toUpperCase() } <br>
  • LISTA: IDEIA 2 2 – Digamos que a logica a ser aplicada a cada item é um pouco mais complicada, também podemos encapsula-la em outra closure. <font color="#4a86e8">def </font>list = ['a','e','i','o','u'] <font color="#4a86e8">def </font>newList = [] <font color="#4a86e8">def </font>closAux = { it.toUpperCase list.<font color="#4a86e8">collect</font>( newList, closAux Definição: Neste caso estamos trabalhando com a mesma lógica, mas aqui p odemos aproveitar a segunda closure para encapsular uma lógica mais comp lexa a ser atribuída a cada atributo da lista iterada. Aqui, temos uma nova closure criada que atribui uma lógica (no it) para no final retorna-lo. Logo em seguida podemos chamar o collect passand o a nova lista e a closure. Pronto, a logica da closure passada por parâ metro será utilizada para cada item iterado da lista e atribuindo a nova lista.
  • FIM Por fim. É claro que não paramos por aqui. Closures no groovy pode se transformar em um mundo quando utilizamos a boa e velha lógica de programação em conjunto com os conceitos da linguagem. Lembrando que este post foi só um esclarecimento de closure para dar continuidade nos próximos posts.
  • CONTATOS jonatasemidio@gmail.com http://jonatasemidio.com/ http://santograils.org/