távamos na verdade fazendo um comentário. Esse é o conhecido comentário de 1
linha. Assim, se existirem N linhas e você deseje comentar todas elas, terá que adi-
cionar # linha por linha.
#idade = 27
#ano = 2013
Para esses casos onde precisamos comentar diversas linhas, podemos utilizar os
comentários em bloco, que podem ser feitos usando envolvendo o conteúdo a ser
comentado entre as demarcações =begin e =end.
=begin
idade = 27
ano = 2013
=end
16
Casa do Código
Capítulo 2. Seu primeiro passo no Ruby: convenções e as diferentes estruturas. . .
Com isso, esses códigos serão desconsiderados na interpretação do seu pro-
grama.
2.3
O trabalho com números
Em qualquer aplicação que é desenvolvida, em algum momento deve-se trabalhar
com números. Muitas das informações podem ser representadas com um número
inteiro, como idade, ano ou quantidade_estoque, por exemplo. Nesse caso,
declaramos a variável com o número:
idade = 27
ano = 2013
Ao trabalharmos com números inteiros, podemos descobrir seu tipo pergun-
tando para a variável qual é a sua classe:
idade.class
=> Fixnum
Repare que => Fixnum não precisa ser digitado, ele apenas indica qual será a
saída do IRB. Ao longo do livro, utilizarei esta abordagem para indicar qual o retorno
de uma chamada dentro do IRB, facilitando sua leitura.
Números inteiros geralmente são do tipo Fixnum, exceto em casos extrema-
mente grandes onde o Bignum é empregado. No entanto, números muito grandes
e que precisamos representar de forma literal podem ficar complicados de ler no
código. Por exemplo, a quantidade de habitantes no mundo em 2013, poderíamos
fazer:
habitantes = 7000000000
7 bilhões de habitantes é um número consideravelmente grande. Mas e se fosse
70 bilhões?
habitantes = 70000000000
Repare que não é tão fácil perceber que há um zero a mais nesse grande número.
Para esses casos, Ruby nos permite separar os milhares através do %_
habitantes = 7_000_000_000
17
2.4. Representação de textos com as Strings
Casa do Código
Com isso conseguimos deixar o número literal mais legível.
Em outras situações, podemos precisar definir números que tenham casas deci-
mais. Por exemplo, para representar o peso de uma pessoa:
peso = 77.9
Repare que a separação das casas decimais é o . (ponto) e não a
, (vírgula).
2.4
Representação de textos com as Strings
Muitas das vezes precisamos de variáveis que guardem informações que são compos-
tas por texto, como o nome de uma pessoa e seu identificar em alguma rede social.
Esse tipo de informação é o que chamamos de String. Em Ruby, qualquer carac-
tere ou conjunto de caracteres cercado de aspas simples ou duplas é considerado uma
String:
nome_completo = "Lucas Souza"
twitter = '@Lucasas'
puts nome_completo.class # => String
puts twitter.class # => String
Mas por qual motivo e quando eu uso String com aspas simples ou duplas?
Imagine que você possui uma amiga chamada Joana dArc e precisamos armaze-
nar o nome dela em uma variável:
nome_com_aspas_simples = 'Joana d'Arc' # não funciona
nome_com_aspas_duplas = "Joana d'Arc" # funciona
Repare que quando definimos String com aspas simples, não conseguimos
adicionar outra aspas simples dentro do texto, pois dessa forma é o interpretador
não sabe onde fica o final da String. Neste caso o único jeito é usar aspas duplas.
Mas existem outros casos onde Strings com aspas duplas são mais interessantes.
Precisamos agora exibir uma mensagem de boas-vindas contendo o nome da pessoa
que está definido dentro da variável nome. O mais natural seria repetir o compor-
tamento de outras linguagens e usar o operador + para realizar uma concatenação.
nome = "Joana d'Arc"
boas_vindas = "Seja bem-vinda(o) " + nome
puts boas_vindas # => Seja bem-vinda(o) Joana d'Arc
18
Casa do Código
Capítulo 2. Seu primeiro passo no Ruby: convenções e as diferentes estruturas. . .
Porém em Ruby quando precisamos concatenar duas String, preferimos fazer
o uso da interpolação:
nome = "Joana d'Arc"
boas_vindas = "Seja bem-vinda(o) #{nome}"
puts boas_vindas # => Seja bem-vinda(o) Joana d'Arc
Basta colocar dentro da String a variável dentro de #{variavel}. É uma
maneira mais elegante e comum de ser usada em códigos Ruby. O detalhe é que em
String definidas com aspas simples não é possível fazer uso da interpolação.
Prefira sempre o uso de String com aspas duplas e priorize sempre a interpo-
lação quando for concatenar.
Existe diferença de performance entre String com aspas simples e duplas?
Existe muita discussão sobre qual tipo de declaração de String devemos uti-
lizar, com o argumento que a declaração com aspas simples são mais rápidas que as
declarações com aspas duplas.
As String declaradas com aspas simples podem ser sutilmente mais rápidas
que as declaradas com aspas duplas porque o analisador léxico da linguagem Ruby
não tem que checar se existem marcadores de interpolação #{}. Este número pode
variar de interpretador para interpretador e vale ressaltar que este tempo seria menos