O modo Ruby de fazer

19/02/07

Ruby é uma linguagem e tanto! Vou mostrar abaixo algumas coisas que considero maravilhosas e uma vez que você se acostuma, sente falta em todas as outras linguagens que você trabalha!

Adicionar itens em um array

items = ['apple', 'windows', 'linux']
 
# modo antigo
items.push('unix')
 
# modo ruby
items << 'unix'

Concatenando strings*

phrase = 'I do not like '
 
# modo antigo
phrase += 'Windows'
 
# modo ruby
phrase << 'Windows'

Verificando se um item existe no array e se não existir, adiciona

items = ['apple', 'windows', 'linux']
 
# modo antigo
if not items.include?('unix')
  items << 'unix'
end
 
# modo ruby
items |= ['unix']

Atribuindo valores de um array a variáveis

items = ['apple', 'windows', 'linux']
 
# modo antigo
a = items[0]
b = items[1]
 
# modo ruby
a, b = *items

Atribuindo um valor a uma variável somente se ela não tiver nenhum valor pré-definido

a = nil
 
# modo antigo
if not a
  a = 'linux'
end
 
# modo ruby
a = 'linux' unless a
 
#modo ruby melhor ainda
a ||= 'linux'

*Antes que me perguntem qual a vantagem de se utilizar << ao invés de += é que você padroniza o método "adicionar a" para arrays e strings, além de arquivos (se anda como um pato e faz o som de um pato, deve ser um pato).

Comentários #


#1 Daniel Luz disse:
19 Fev 07, 09:53PM

Nando, outra diferença importante entre += e << e que não pode (ou não devia) ser ignorada é que o += cria novas strings a cada concatenação, o que pode aumentar substancialmente o custo de processamento se você usar a operação repetidamente (por exemplo para criar uma string final através de vários pequenos pedaços). Já o << altera a string original, alocando mais espaço apenas se necessário (as Strings do Ruby são mutáveis e comparáveis às StringBuilders do Java e do .NET).

O aspecto mais importante do << é a economia de processamento e memória, mas em certas ocasiões o fato da alteração também pode ser útil. Um exemplo de como isso pode afetar os resultados: http://pastebin.com/884897

#2 Nando Vieira disse:
21 Fev 07, 10:05AM

Bem lembrado Daniel!

#3 leonardofaria.net // weblab // » Curiosidade Ruby do dia disse:
26 Out 07, 05:36PM

[...] outras caracter

#4 Simples Idéias. Por Nando Vieira. » Arquivo » Usando... disse:
17 Abr 08, 07:48PM

[...] Ruby tem algumas particularidades que muitas pessoas não conhecem. Algumas são especialmente úteis, como é o caso do atalho de [...]

Deixe um comentário




Este blog usa o Gravatar.


Não é aceito código HTML:
adicione-o no pastie.caboo.se ou paste.milk-it.net e poste apenas o link.

Se este é seu primeiro comentário, ele terá que ser aprovado antes de ser exibido.