DRY e Blocos de Código com Ruby
O Iuri já mostrou num post anterior, como criar métodos (funções) em ruby. Sendo assim somos praticamente craques em construir funções ruby. Neste post vamos explorar recursos avançados e interessantes das funçoes ruby, para isso, utilizaremos um array com alguns nomes.
Problema Inicial:
Devemos criar um método que seja capaz de percorrer um array, exibindo seus elementos. (Ok, tudo bem nós sabemos que todo array possui um método each. Mas vamos fingir que esse kra não existe)
lista = ["sergio","roberto", "iuri","luiz"] def mostra_elementos( array ) for elemento in array puts elemento end end mostra_elementos(lista)
Ótimo! Atingimos nosso objetivo. O codigo acima exibira os nomes contidos no array.
Os requisitos mudaram:
Agora nós queremos percorrer o array exibindo cada um de seus elementos ao contrario, por exemplo, "sergio" será exibido como "oigres". Podemos criar um novo método para isso, então vamos ao trabalho:
Aprenda Ruby – parte III
String
Acho que agora as coisas começam a ficar mais divertidas
Não é minha intenção, ficar explicando cada classe básica do Ruby, acho que mais importante focarmos no conceito da linguagem, acredito que a melhor forma de aprender a programar é praticando, por tanto vou usar alguns exemplos utilizando funcionalidades da String e do Array, para explicar os conceitos e ao mesmo tempo mostrar como é produtivo programar em Ruby.
Para entender os recursos de cada classe, basta olhar a documentação do Ruby que é bem abrangente.
Vamos ver alguns exemplos, de como podemos concatenar valores em uma string:
variavel = "um dois tres" variavel = variavel+" quatro cinco seis" #pode ser assim também variavel = "um dois tres" variavel += " quatro cinco seis" #Também podemos fazer assim variavel = "um dois tres" variavel.concat(" quatro cinco seis") #ou melho ainda, esse é muito maneiro, o código fica claro! variavel = "um dois tres" variavel << " quatro cinco seis" #alem de claro, esse tipo de atribuição é mais rápido.
Viu por que Ruby é agil?
- Até minha mãe entende que com esse simbolo "<<" estou inserindo uma valor na String ![]()
É claro que em java temos outros modos de concatenar valores em uma String, mas provavelmente alguns deles nos obriga a instanciar alguma classe utilitária como o StringBuilder, por exemplo.