Nomes em Ruby

Nomes em Ruby são usados para se referir a constantes, variáveis, métodos, classes e módulos. O primeiro caractere de um nome ajuda o Ruby a distinguir o uso pretendido. Determinados nomes são palavras reservadas e não deveriam ser utilizados como nome de variáveis, métodos, classes ou módulos. Letras minúsculas significa do caractere “a” até “z”. Letras maiúsculas significa “A” até “Z”, e dígitos significa “0” até “9”. Um nome é uma letra maiúscula, uma minúscula, ou um underscore (“_”), seguido por caracteres de nome (isso é uma combinação de letras maiúsculas e minúsculas, underscores e dígitos).

Variáveis

Variáveis no Ruby podem conter dados de qualquer tipo. Você pode usar variáveis em seus programas Ruby sem qualquer declaração. O nome de uma variável por si só denota seu escopo (local, global, instância, etc).

Constantes

O nome de uma constante começa com uma letra maiúscula seguida por caracteres de nome. Nomes de classes e módulos são constantes, e seguem a convenção de nomes de contantes. Exemplos: módulo MyMath, PI=3.1416, classe Pessoa.

Nomes de Métodos

Nomes de métodos deveriam começar com uma letra minúscula (ou um underscore). “?”, “!” e “=” são os únicos caracteres estranhos permitidos como sufixos em nomes de métodos (!, ou ‘bang’, rotula um método como especificamente perigoso, equivalentemente mais perigoso do que um método com o mesmo nome sem o ‘bang’. Veremos mais sobre isso depois em Métodos ‘bang’).

A convenção do Ruby é que se use underscores para separar palavras em um nome de método ou variável com mais de uma palavra. Por convenção, a maioria das constantes são escritas com letras maiúsculas e com underscores para separas as palavras, ‘DESSE_JEITO’. Os nomes de classes e módulos do Ruby são como as constantes, mas eles são convencionalmente escritos usando capitalização (letras iniciais maiúsculas), ‘DesseJeito’.
É para se notar que uma variável pode, em momentos diferentes, fazer referência a objetos de diferentes tipos. Uma constante do Ruby também faz referência a um objeto. Uma constante é criada na primeira vez que é atribuído um valor a ela (normalmente em uma classe ou em uma definição de módulo; elas não devem ser definidas em um método – veremos mais sobre constantes depois em Constantes). O Ruby deixa você alterar o valor de uma constante, mas isso irá gerar uma mensagem de aviso.

Um exemplo para demonstrar que o Ruby é dinamicamente tipado – p007dt.rb

1 # p007dt.rb
2 # O Ruby é dinâmico
3 x = 7       # inteiro
4 x = "casa"  # string
5 x = 7.5     # real
6 
7 # Em Ruby, tudo o que você manipula é um objeto
8 'Eu amo Ruby'.length

 

Os tipos básicos no Ruby são Numeric (subtipos: Fixnum, Integer e Float), String, Array, Hash, Object, Symbol, Range e RegExp.

Em meu computador, o código:

1 puts Float::DIG

imprime 15. E:

1 puts Float::MAX

imprime 1.79769313486232e+308

Vamos dar uma olhada no exemplo de Peter Cooper em seu livro Beginning Ruby:

1 arroz_no_quadrado = 1
2 64.times do |quadrado|
3   puts "No quadrado #{quadrado + 1}#{arroz_no_quadrado} grão(s)"
4   arroz_no_quadrado *= 2
5 end

Pelo quadrado 64 você estará colocando alguns trilhões de grãos de arroz em cada quadrado!

Isto prova que o Ruby é apto a lidar com números extremamente grandes e, diferente de outras linguagens de programação, não há limites inconvenientes. O Ruby faz isso com diferentes classes, uma chamada Fixnum (padrão) que representa pequenos números facilmente gerenciáveis, e outra, acertadamente chamada de Bignum, que representa números grandes que o Ruby precisa gerenciar internamente. O Ruby irá manipular a Bignums e a Fixnums para você, e você pode realizar cálculos aritméticos e outras operações sem nenhum problema. Os resultados podem variar dependendo da arquitetura do sistema, mas essas mudanças são manuseadas pelo Ruby internamente, não é preciso se preocupar.

O Ruby não requer que você use primitivos (data types) quando está manipulando dados desses tipos – se se parece com um inteiro, provavelmente é um inteiro; se se parece com uma string, provavelmente é uma string. A classe Object tem um método chamado class que retorna a classe de um objeto, por exemplo:

1 s = 'olá'
2 s.class     # String

Outro exemplo (não se preocupe se você não entender o código agora):

1 puts 'Eu estou na classe = ' + self.class.to_s
2 puts 'Eu sou um objeto = ' + self.to_s
3 print 'Os métodos do objeto são = '
4 puts self.private_methods.sort

Nós iremos falar sobre self mais tarde. private_methods é um método da classe Object e sort é um método da classe Array.

Em Ruby, tudo o que você manipula é um objeto, e o resultado dessa manipulação também são objetos. Não existem primitivos ou data-types.

1 5.times { puts "Ratos!\n" } # mais sobre blocos depois
2 "Elefantes gostam de amendoins".length

Logo do Guru-SP

Este material tem como base o tutorial do RubyLearning.com de Satish Talim e foi traduzido por membros do GURU-SP com a permissão do autor.

Ajude o RubyLearning participando em algum dos cursos pagos ou fazendo uma doação para o projeto

Voltar para o índice