<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Saga do programador &#187; Ruby para iniciantes</title>
	<atom:link href="http://www.sagadoprogramador.com.br/tag/ruby-para-iniciantes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sagadoprogramador.com.br</link>
	<description></description>
	<lastBuildDate>Wed, 18 Aug 2010 13:34:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Aprenda Ruby parte V &#8211; Métodos</title>
		<link>http://www.sagadoprogramador.com.br/2009/07/aprenda-ruby-parte-v-metodos/</link>
		<comments>http://www.sagadoprogramador.com.br/2009/07/aprenda-ruby-parte-v-metodos/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 17:50:46 +0000</pubDate>
		<dc:creator>Iuri Menescal</dc:creator>
				<category><![CDATA[OO]]></category>
		<category><![CDATA[Ruby para iniciantes]]></category>
		<category><![CDATA[Sem categoria]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[aprenda ruby]]></category>
		<category><![CDATA[Tutorial Ruby]]></category>

		<guid isPermaLink="false">http://www.sagadoprogramador.com.br/?p=277</guid>
		<description><![CDATA[Nesse artigo vamos conhecer um pouco de métodos em Ruby. Você, programador experiente deve estar pensando "Não deve ter nada de muito diferente.." vamos ver o que você acha até o final desse post.
Estrutura
O Método em Ruby é declarado da seguinte forma:

def nomeDoMetodo
   #código
end

Só isso?
Não tenho que dizer o que ele retorna?
Ou dizer [...]]]></description>
			<content:encoded><![CDATA[<p>Nesse artigo vamos conhecer um pouco de métodos em Ruby. Você, programador experiente deve estar pensando <em>"Não deve ter nada de muito diferente.."</em> vamos ver o que você acha até o final desse post.</p>
<p><strong>Estrutura</strong></p>
<p>O Método em Ruby é declarado da seguinte forma:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">def</span> nomeDoMetodo
   <span style="color:#008000; font-style:italic;">#código</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>Só isso?<br />
Não tenho que dizer o que ele retorna?<br />
Ou dizer que ele não retorna nada <em>"void"</em> ?<br />
É isso mesmo, no Ruby você não precisa definir o que o seu método retorna, também não temos obrigação de utilizar <em>"return"</em> o nosso método sempre vai retornar o ultimo valor atribuído.<br />
É tão simples que deve ter ficado difícil de você visualizar:). Vamos ver um exemplo:</p>
<p><span id="more-277"></span></p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;"># criando um método chamado teste</span>
<span style="color:#9966CC; font-weight:bold;">def</span> teste
  valor = <span style="color:#006666;">1</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#008000; font-style:italic;">#chamando esse método</span>
teste
=<span style="color:#006600; font-weight:bold;">&amp;</span>gt; <span style="color:#006666;">1</span></pre></div></div>

<h2><strong>Parâmetros</strong></h2>
<p>O modo de passar parâmetros para um método em Ruby, é quase parecido com o das <a href="http://www.sagadoprogramador.com.br/?p=199">linguagens chatas</a>:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"> <span style="color:#9966CC; font-weight:bold;">def</span> nomeDoMetodo<span style="color:#006600; font-weight:bold;">&#40;</span>parametro1,parametro2<span style="color:#006600; font-weight:bold;">&#41;</span>
    valor = parametro1 <span style="color:#006600; font-weight:bold;">+</span> parametro2
 <span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>Ok! a similaridade com as  <a href="http://www.sagadoprogramador.com.br/?p=199">linguagens chatas</a> para por aqui.<br />
Uma das coias legais de se trabalhar com uma linguagem dinamica é essa, note que não precisamos definir tipos para o parâmetro, isso nos da uma grande flexibilidade!<br />
Você não acha?<br />
<strong>Não!?</strong> <img src='http://www.sagadoprogramador.com.br/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  e se eu disser para você que a flexibilidade não se limita a isso, e se eu disser que podemos também, passar um numero indeterminado de parâmetros para o nosso método?<br />
<em>você não acredita? vamos ver um exemplo então: </em></p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">  <span style="color:#008000; font-style:italic;"># note como declaro o parâmetro no método</span>
  <span style="color:#9966CC; font-weight:bold;">def</span> teste<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">*</span>parametros<span style="color:#006600; font-weight:bold;">&#41;</span>
    parametros.<span style="color:#9900CC;">each</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>parametro<span style="color:#006600; font-weight:bold;">|</span> <span style="color:#CC0066; font-weight:bold;">puts</span> parametro <span style="color:#006600; font-weight:bold;">&#125;</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#008000; font-style:italic;">#chamando o método</span>
  teste<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">1</span>,<span style="color:#006666;">2</span>,<span style="color:#006666;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span>
  <span style="color:#006666;">1</span>
  <span style="color:#006666;">2</span>
  <span style="color:#006666;">3</span>
  =<span style="color:#006600; font-weight:bold;">&amp;</span>gt; <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">1</span>,<span style="color:#006666;">2</span>,<span style="color:#006666;">3</span><span style="color:#006600; font-weight:bold;">&#93;</span></pre></div></div>

<p>Para finalizar esse post, vou dar um exemplo que os programadores Delphi vão adorar.</p>
<p><em>Caramba senti muita falta disso, quando comecei a programar em Java <img src='http://www.sagadoprogramador.com.br/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  </em></p>
<p>Nos métodos em Ruby é possivel definir um valor default para o parâmetro. Heeeee!!!</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">  <span style="color:#9966CC; font-weight:bold;">def</span> teste<span style="color:#006600; font-weight:bold;">&#40;</span>parametro=<span style="color:#996600;">&quot;Não foi passado nenhum valor&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    parametro
  <span style="color:#9966CC; font-weight:bold;">end</span>
  teste<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;novo valor&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
  =<span style="color:#006600; font-weight:bold;">&amp;</span>gt; novo valor
  teste
  =<span style="color:#006600; font-weight:bold;">&amp;</span>gt; Não foi passado nehum valor</pre></div></div>

<p><em>pode falar... agora eu consegui te impressionar!</em> <img src='http://www.sagadoprogramador.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Por enquanto vamos ficar por aqui, mas ainda temos muito para ver sobre métodos em Ruby.<br />
Aguardem o próximo post.</p>
<p>Abraço!</p>
<p>Iuri Menescal</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sagadoprogramador.com.br/2009/07/aprenda-ruby-parte-v-metodos/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Aprenda Ruby &#8211; parte IV &#8211; mais um pouco sobre Array</title>
		<link>http://www.sagadoprogramador.com.br/2009/06/aprenda-ruby-parte-iv-mais-um-pouco-sobre-array/</link>
		<comments>http://www.sagadoprogramador.com.br/2009/06/aprenda-ruby-parte-iv-mais-um-pouco-sobre-array/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 22:11:19 +0000</pubDate>
		<dc:creator>Iuri Menescal</dc:creator>
				<category><![CDATA[Ruby para iniciantes]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[aprenda ruby]]></category>
		<category><![CDATA[Tutorial Ruby]]></category>

		<guid isPermaLink="false">http://www.sagadoprogramador.com.br/?p=262</guid>
		<description><![CDATA[Nessa sequência de artigos sobre Ruby, venho tentando escrever artigos que não sejam muito extensos, justamente para que você aprenda Ruby ao modo Ruby, ou seja, prático, rápido e simples.
Mas depois de publicar o último post, tive um retorno tão bom que fiquei empolgado em escrever outro logo  . 
Alem disso, fiquei com uma [...]]]></description>
			<content:encoded><![CDATA[<p>Nessa sequência de artigos sobre Ruby, venho tentando escrever artigos que não sejam muito extensos, justamente para que você aprenda Ruby ao modo Ruby, ou seja, prático, rápido e simples.</p>
<p>Mas depois de publicar o último post, tive um retorno tão bom que fiquei empolgado em escrever outro logo <img src='http://www.sagadoprogramador.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . <br />
Alem disso, fiquei com uma sensação de que estava faltando alguma coisa, como disse antes o foco não é mostrar os métodos de cada classe do Ruby, mas o Array em Ruby é tão maneiro que eu tinha que mostrar mais algumas coisas legais.</p>
<p><span id="more-262"></span></p>
<p>No post anterior eu disse que uma das coisas que me desanimou no Array, quando comecei a programar, era a dificuldade de recuperar os dados, então aqui vai mais alguns exemplos de como o Ruby resolve esse problema:</p>
<p><b>Ordenação</b></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#o método sort ordena os valores em ordem alfabética</span>
meuArray = <span style="color:#006600; font-weight:bold;">%</span>w<span style="color:#006600; font-weight:bold;">&#40;</span>Alagoas Rio\ de\ Janeiro Brasília<span style="color:#006600; font-weight:bold;">&#41;</span> 
<span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;Alagoas&quot;</span>,<span style="color:#996600;">&quot;Rio de Janeiro&quot;</span>,<span style="color:#996600;">&quot;Brasilia&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span>
<span style="color:#008000; font-style:italic;">#presto atenção na &quot;\&quot; para escrever algo com espaço dentro do mesmo item do array?</span>
<span style="color:#008000; font-style:italic;">#agora vamos ordenar por nome</span>
meuArray.<span style="color:#9900CC;">sort</span>
<span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;Alagoas&quot;</span>,<span style="color:#996600;">&quot;Brasilia&quot;</span>,<span style="color:#996600;">&quot;Rio de Janeiro&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span></pre></td></tr></table></div>

<p>Grande coisa o exemplo acima, qual é a linguagem que não faz isso, né?<br />
Então, vamos jogar um pouco do pó mágico do Ruby e deixar o próximo exemplo mais atraente.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;">meuArray = <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;Alagoas&quot;</span>,<span style="color:#996600;">&quot;Brasilia&quot;</span>,<span style="color:#996600;">&quot;Rio de Janeiro&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span>
<span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;Alagoas&quot;</span>,<span style="color:#996600;">&quot;Brasilia&quot;</span>,<span style="color:#996600;">&quot;Rio de Janeiro&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span>
<span style="color:#008000; font-style:italic;">#olha o que podemos fazer acrescentando um bloco no final</span>
<span style="color:#008000; font-style:italic;">#vamos ordenar ao contrario agora </span>
<span style="color:#008000; font-style:italic;">#mas lembre-se que você pode passar N condições </span>
<span style="color:#008000; font-style:italic;">#pois estamos trabalhando com blocos!</span>
&nbsp;
meuArray.<span style="color:#9900CC;">sort</span> <span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">|</span>x,y<span style="color:#006600; font-weight:bold;">|</span> y <span style="color:#006600; font-weight:bold;">&lt;=&gt;</span> x<span style="color:#006600; font-weight:bold;">&#125;</span>
<span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;Rio de Janeiro&quot;</span>, <span style="color:#996600;">&quot;Brasília&quot;</span>, <span style="color:#996600;">&quot;Alagoas&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span></pre></td></tr></table></div>

<p><b>Pesquisa</b></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;">estados = <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;RJ&quot;</span>,<span style="color:#996600;">&quot;MG&quot;</span>,<span style="color:#996600;">&quot;SP&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span>
<span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;RJ&quot;</span>,<span style="color:#996600;">&quot;MG&quot;</span>,<span style="color:#996600;">&quot;SP&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span>
<span style="color:#008000; font-style:italic;">#Quero confirmar se nesse Array </span>
<span style="color:#008000; font-style:italic;">#realmente existe o estado &quot;Rio de Janeiro&quot;</span>
estados.<span style="color:#9966CC; font-weight:bold;">include</span>?<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;RJ&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">true</span>
&nbsp;
<span style="color:#008000; font-style:italic;">#Agora queremos saber se algum item do meu array possui a letra &quot;S&quot;</span>
estados.<span style="color:#9900CC;">any</span>? <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>item<span style="color:#006600; font-weight:bold;">|</span> item.<span style="color:#9966CC; font-weight:bold;">include</span>?<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;S&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
<span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">true</span>
<span style="color:#008000; font-style:italic;">#e se eu quiser saber se todos os itens do meu array possui a letra &quot;S&quot;?</span>
<span style="color:#008000; font-style:italic;">#simples!</span>
estados.<span style="color:#9900CC;">all</span>? <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>item<span style="color:#006600; font-weight:bold;">|</span> item.<span style="color:#9966CC; font-weight:bold;">include</span>?<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;S&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
<span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">false</span>
&nbsp;
<span style="color:#008000; font-style:italic;">#quero separar do meu array os estados com letra &quot;S&quot;</span>
estadosComS, estadosSemS = estados.<span style="color:#9900CC;">partition</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>item<span style="color:#006600; font-weight:bold;">|</span> item.<span style="color:#9966CC; font-weight:bold;">include</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;S&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
estadosComS
<span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;SP&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span>
estadosSemS
<span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;RJ&quot;</span>,<span style="color:#996600;">&quot;MG&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span></pre></td></tr></table></div>

<p>Olha só que linguagem linda! Notem a expressividade desse código:<b> "include?" </b><br />
Eu quero saber se o meu array de estados contem o estado "RJ". Se eu quero saber algo sobre o meu array, eu tenho que perguntar para ele e uma pergunta deve terminar com interrogação, então: estados.include?("RJ").</p>
<p>Pode falar... da vontade de congelar esse projeto, que você ta desenvolvendo ai na sua empresa e reescreve tudo em Ruby, não é? rs...</p>
<p>Mais uma vez utilizei bastante o conceito de blocos, que é um dos grandes baratos do Ruby.</p>
<p>Logo irão surgir outros conceitos que vão me obrigar a ter a mesma postura, no próximo post vamos ver um pouco sobre lambdas, que é um outro recurso bem bacana.<br />
É importante fixar bem esses conceitos para programadores que vem de linguagens como Java, Delphi, C#, pois é mais difícil se acostumar com algo tão fora do trivial do seu dia a dia, é importante isso ficar na "veia", para que você consiga lembrar de utilizar esses tipos de recursos quando precisar. Tenho certeza que isso vai facilitar muito a sua vida quando estiver programando em Ruby.</p>
<p>Acho que agora deu para fechar com chave de ouro o nosso estudo sobre arrays.</p>
<p>Até a próxima!</p>
<p>Iuri</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sagadoprogramador.com.br/2009/06/aprenda-ruby-parte-iv-mais-um-pouco-sobre-array/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aprenda Ruby &#8211; parte III</title>
		<link>http://www.sagadoprogramador.com.br/2009/06/aprenda-ruby-parte-iii/</link>
		<comments>http://www.sagadoprogramador.com.br/2009/06/aprenda-ruby-parte-iii/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 01:22:09 +0000</pubDate>
		<dc:creator>Iuri Menescal</dc:creator>
				<category><![CDATA[OO]]></category>
		<category><![CDATA[Ruby para iniciantes]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[aprenda ruby]]></category>
		<category><![CDATA[Array]]></category>
		<category><![CDATA[blocos]]></category>
		<category><![CDATA[String]]></category>
		<category><![CDATA[Tutorial Ruby]]></category>

		<guid isPermaLink="false">http://www.sagadoprogramador.com.br/?p=244</guid>
		<description><![CDATA[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, [...]]]></description>
			<content:encoded><![CDATA[<h3>String</h3>
<p>Acho que agora as coisas começam a ficar mais divertidas <img src='http://www.sagadoprogramador.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>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.</p>
<p>Para entender os recursos de cada classe, basta olhar a <a href="http://www.ruby-doc.org/">documentação do Ruby</a> que é bem abrangente.</p>
<p>Vamos ver alguns exemplos, de como podemos concatenar valores em uma string:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">variavel = <span style="color:#996600;">&quot;um dois tres&quot;</span>
variavel = variavel<span style="color:#006600; font-weight:bold;">+</span><span style="color:#996600;">&quot; quatro cinco seis&quot;</span>
&nbsp;
<span style="color:#008000; font-style:italic;">#pode ser assim também</span>
variavel = <span style="color:#996600;">&quot;um dois tres&quot;</span>
variavel <span style="color:#006600; font-weight:bold;">+</span>= <span style="color:#996600;">&quot; quatro cinco seis&quot;</span>
&nbsp;
<span style="color:#008000; font-style:italic;">#Também podemos fazer assim</span>
variavel = <span style="color:#996600;">&quot;um dois tres&quot;</span>
variavel.<span style="color:#9900CC;">concat</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot; quatro cinco seis&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
<span style="color:#008000; font-style:italic;">#ou melho ainda, esse é muito maneiro, o código fica claro!</span>
variavel = <span style="color:#996600;">&quot;um dois tres&quot;</span>
variavel <span style="color:#006600; font-weight:bold;">&amp;</span>lt;<span style="color:#006600; font-weight:bold;">&amp;</span>lt; <span style="color:#996600;">&quot; quatro cinco seis&quot;</span>
<span style="color:#008000; font-style:italic;">#alem de claro, esse tipo de atribuição é mais rápido.</span></pre></div></div>

<p>Viu por que Ruby é agil?<br />
- Até minha mãe entende que com esse simbolo "&lt;&lt;" estou inserindo uma valor na String <img src='http://www.sagadoprogramador.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
É 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 <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/StringBuilder.html">StringBuilder</a>, por exemplo.</p>
<p><span id="more-244"></span></p>
<p>Gostou? você ainda não viu nada, olha só que F0D@! :p</p>
<p><strong><em>Delete</em></strong></p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#aqui eu quero remover todas as vogais de uma String</span>
<span style="color:#996600;">&quot;a b c d e f g h i &quot;</span>.<span style="color:#9900CC;">delete</span> <span style="color:#996600;">&quot;aeiou&quot;</span>
=<span style="color:#006600; font-weight:bold;">&amp;</span>gt; <span style="color:#996600;">&quot;b c d f g h&quot;</span>
&nbsp;
<span style="color:#008000; font-style:italic;">#podemos utilizar exceções.</span>
<span style="color:#008000; font-style:italic;">#vamos remover todas as vogais, exceto a vogal &quot;i&quot;</span>
<span style="color:#996600;">&quot;a b c d e f g h i&quot;</span>.<span style="color:#9900CC;">delete</span> <span style="color:#996600;">&quot;aeiou&quot;</span>, <span style="color:#996600;">&quot;^i&quot;</span>
=<span style="color:#006600; font-weight:bold;">&amp;</span>gt; <span style="color:#996600;">&quot;b c d f g h i&quot;</span></pre></div></div>

<p>Quer ver mais?</p>
<pre class="ruby">#Conversão de case
"saga do programador".upcase
=&gt; "SAGA DO PROGRAMADOR"
"SAGA DO PROGRAMADOR".downcase
=&gt;"saga do programador"

#olha só que maneiro:
#veja como esse código é expressivo!
"saga do programador".include? "programador"
=&gt; true
#é esse tipo de coisa q faz a diferença
#quero saber quantos caracteres diferentes existem entre as Strings
"Iuri" &lt;=&gt; "Iure"
=&gt; 1
#agora eu quero tirar caracteres duplicados de uma String
"google".tr_s("o","o")
=&gt; "gogle"
"google".tr_s("o","")
=&gt; ggle</pre>
<p><strong>Arrays:</strong></p>
<p>Na boa! Quando comecei a programar, aprendi sobre Arrays com o velho Pascal, achei muito chato. Pelas dificuldades apresentandas para recuperar os dados.</p>
<p>Com a evolução das linguagens as coisas foram melhorando, mas definitivamente trabalhar com Arrays em linguagens dinâmicas, supera as expectativas!</p>
<p><strong>Vamos aos exemplos:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#Criando uma array em Ruby:</span>
meuArray = <span style="color:#006600; font-weight:bold;">&#91;</span>“um”, “dois”,<span style="color:#006666;">3</span><span style="color:#006600; font-weight:bold;">&#93;</span>
=<span style="color:#006600; font-weight:bold;">&amp;</span>gt; <span style="color:#006600; font-weight:bold;">&#91;</span>“um”,”dois”,<span style="color:#006666;">3</span><span style="color:#006600; font-weight:bold;">&#93;</span>
<span style="color:#008000; font-style:italic;">#Sim é isso mesmo! Eu posso ter tipos diferentes dentro do mesmo Array</span></pre></div></div>

<p>Olha com as coisas ficam ainda mais legais, quando nos aproveitamos das facilidades que a linguagem Ruby nos proporciona com o conceito de blocos:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">meuArray = <span style="color:#CC0066; font-weight:bold;">Array</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#125;</span>
=<span style="color:#006600; font-weight:bold;">&amp;</span>gt; <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">1</span>,<span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span></pre></div></div>

<p>Alguma vez você imaginou preencher um Array de maneira tão simples, como no exemplo abaixo:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">meuArray = <span style="color:#CC0066; font-weight:bold;">Array</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">5</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">|</span>n<span style="color:#006600; font-weight:bold;">|</span> n<span style="color:#006600; font-weight:bold;">+</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#125;</span>
=<span style="color:#006600; font-weight:bold;">&amp;</span>gt; <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">1</span>,<span style="color:#006666;">2</span>,<span style="color:#006666;">3</span>,<span style="color:#006666;">4</span>,<span style="color:#006666;">5</span><span style="color:#006600; font-weight:bold;">&#93;</span></pre></div></div>

<p>No post <a href="../?p=199">anterior</a> eu finalizei com a seguinte pergunta:<br />
Tenho uma String com seguinte valor “um dois tres quatro cinco”, como você faria em uma linguagem chata para transformar essa String em um array contendo cinco itens?</p>
<p>Bom, existe N maneires de fazer isso em N linguagens, meu exemplo de linguagem chata, será em delphi, vamos a roubada rs.. :</p>

<div class="wp_syntax"><div class="code"><pre class="pascal" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//Para facilitar, ao invés de utilizar um Array, vou usar a classe TStringList.</span>
<span style="color: #000000; font-weight: bold;">Var</span>
  valor<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">String</span>;
  listaValor<span style="color: #339933;">:</span> TStringList;
<span style="color: #000000; font-weight: bold;">begin</span>
  valor <span style="color: #339933;">:=</span> <span style="color: #ff0000;">'um dois tres quatro cinco'</span>;
  listaValor <span style="color: #339933;">:=</span> TStringList.<span style="color: #0066ee;">Create</span>;
  valor <span style="color: #339933;">:=</span> StringReplace<span style="color: #009900;">&#40;</span>valor<span style="color: #339933;">,</span><span style="color: #ff0000;">' '</span><span style="color: #339933;">,</span><span style="color: #ff0000;">','</span><span style="color: #339933;">,</span><span style="color: #009900;">&#91;</span>rfReplaceAll<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>;
  listaValor.<span style="color: #0066ee;">CommaText</span> <span style="color: #339933;">:=</span> valor;
<span style="color: #000000; font-weight: bold;">end</span>;</pre></div></div>

<p>Agora em Ruby:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#Preste atenção como é complexo rs...</span>
meuArray = <span style="color:#006600; font-weight:bold;">%</span>w<span style="color:#006600; font-weight:bold;">&#40;</span>um dois tres quatro cinco<span style="color:#006600; font-weight:bold;">&#41;</span>
=<span style="color:#006600; font-weight:bold;">&amp;</span>gt; <span style="color:#006600; font-weight:bold;">&#91;</span>“um”,”dois”,”tres”,”quatro”,”cinco”<span style="color:#006600; font-weight:bold;">&#93;</span></pre></div></div>

<p>Outros exemplos:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#Sim! O operador &quot;&amp;lt;&amp;lt;&quot; também funciona para o Array</span>
&nbsp;
meuArray = <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span>
=<span style="color:#006600; font-weight:bold;">&amp;</span>gt; <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span>
meuArray <span style="color:#006600; font-weight:bold;">&amp;</span>lt;<span style="color:#006600; font-weight:bold;">&amp;</span>lt; <span style="color:#006666;">2</span>
=<span style="color:#006600; font-weight:bold;">&amp;</span>gt; <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">1</span>,<span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#93;</span></pre></div></div>

<p>No incio desse topico sobre arrays, comentei que um dos grandes problemas de trabalhar com Arrays nas linguagens chatas, e a dificuldade para manipular os dados, vamos ver agora uma pequena amostra, das facilidades que o Ruby nos oferece para trabalhar com isso:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">meuArray = <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">1</span>,<span style="color:#006666;">2</span>,<span style="color:#006666;">3</span>,<span style="color:#006666;">4</span>,<span style="color:#006666;">5</span><span style="color:#006600; font-weight:bold;">&#93;</span>
=<span style="color:#006600; font-weight:bold;">&amp;</span>gt; <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">1</span>,<span style="color:#006666;">2</span>,<span style="color:#006666;">3</span>,<span style="color:#006666;">4</span>,<span style="color:#006666;">5</span><span style="color:#006600; font-weight:bold;">&#93;</span>
&nbsp;
<span style="color:#008000; font-style:italic;">#Retornar só os numero pares, mais uma vez vou me prevalecer do conceito de blocos.</span>
&nbsp;
arrayPares = meuArray.<span style="color:#CC0066; font-weight:bold;">select</span><span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>valor<span style="color:#006600; font-weight:bold;">|</span> valor<span style="color:#006600; font-weight:bold;">%</span>2==<span style="color:#006666;">0</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
=<span style="color:#006600; font-weight:bold;">&amp;</span>gt; <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">2</span>,<span style="color:#006666;">4</span><span style="color:#006600; font-weight:bold;">&#93;</span></pre></div></div>

<p>Bom, por enquanto é só!<br />
Acho que agora as coisas estão ficando mais com a cara do Ruby, pois deixamos de lado o bla bla e passamos para a pratica, algo mais produtivo, talvez você ainda não tenha notado, mas nesse post conseguimos trabalhar bastante um otimo conceito do Ruby que são os blocos. A intenção daqui para frente é utilizar exemplos de códigos, para expressar os conceitos das funcionalidades que essa maravilhosa linguagem nos proporciona <img src='http://www.sagadoprogramador.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Até a próxima!</p>
<p>Iuri Menescal</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sagadoprogramador.com.br/2009/06/aprenda-ruby-parte-iii/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
