Nomes novos para coisas antigas

Ruby usa nomes especiais para coisas que nós já conhecemos. Por exemplo, ele usa a palavra Float para dizer "decimais". Aqui estão mais definições:

- Objeto: É apenas uma peça de informação.Como o número 3 ou o texto"hello".
- Classe: Ruby separa tudo em classes. Como inteiros, decimais e strings.
- Método: Estas são as coisas que você pode fazer com o objeto. Por exemplo, você pode adicionar inteiros depois,  com mais um método.

Você está pronto para rever três classes de coisas que sabemos:

Nome antigo Nome Ruby
inteiro
Integer
decimais
Float
texto
String


Você também pode ver alguns métodos:

Classe Alguns métodos
Integer
+ - / * % **
Float
+ - / * % **
String
minúsculas, inverso,
tamanho, maiúsculas

Classes vs objetos

Vamos entender a diferença entre classes e objetos. Um objeto é uma unidade de dados. Uma classe é de qual grupo de dados ele pertence.

Por exemplo, 3 e 5 são números diferentes. Eles não são o mesmo objeto.Mas ambos são inteiros, então pertencem à mesma classe.Aqui estão mais alguns exemplos:

Objeto Classe
   2 Integer
-5 Integer
7.2 Float
3.14 Float
"hello" String
"world" String

Notação Class#method

Lembre-se, diferentes classes possuem diferentes métodos. Aqui estão algumas diferenças que voce deve saber.

  • - Divisão (/) não trabalha igual com integer (inteiros) e floats (decimais).
  • - Adição (+) não trabalha igual com strings (texto) e com integers (inteiros).
  • - Strings contém uma variedade de métodos que integers e floats não têm (exemplo: minúsculas, tamanho, maiúsculas, etc).

Por esta razão, nós usamos a notação Class#method para definir exatamente qual método procuramos. Por exemplo, posso dizer Integer#+ para diferenciá-lo de Float#+ e String#+. Eu posso dizer que String#upcase existe, mas Integer#upcase não existe.

Convertendo entre classes

Ruby possui alguns métodos para conversão entre classes:

Método Conversão
De Para
String#to_i string integer
String#to_f string float
Float#to_i float integer
Float#to_s float string
Integer#to_f integer float
Integer#to_s integer string

Exemplos:

Exercícios

1- Ruby diz a você qual a classe dos objetos. Digite isso no irb:

12.is_a?(Integer)
12.is_a?(Float)
12.is_a?(String)

'12'.is_a?(Integer)
'12'.is_a?(Float)
'12'.is_a?(String)

12.0.is_a?(Integer)
12.0.is_a?(Float)
12.0.is_a?(String)

 

Que diferenças você vê?

2- Digite isso:

12 + 12
'12' + '12'

'12'.to_i + 12
'12' + 12.to_s

12 * 12
'12' * 12
            

Obteve os resultados esperados?

3- Como você pode explicar a diferença entre 12, '12' e 12.0 ao seu irmão mais novo?

topo da página

<< Página Anterior | índice | Próxima Página >>
Apostilas de Ruby e RGSS

nossos tutoriais

navegue

livros recomendados