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 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).
@assinatura, @
_, @@contador). Uma variável de classe é compartilhada por todos os objetos de uma classe. Somente uma cópia de uma variável de classe particular existe para uma dada classe. Variáveis de classe usadas no nível mais alto são definidas em Object e se comportam como variáveis globais. Essas são raramente utilizadas em programas Ruby.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 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’).
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} há #{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
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