Tipos de Dados

A declaração de variáveis em Ruby é muito simples, basta apenas atribuir a uma variável de nome qualquer um valor qualquer. O Ruby possui tipagem dinâmica, então ele infere o tipo de dado que esta sendo atribuido à variável.

$ irb
irb(main):001:0> variavel = 3.2
=> 3.2
irb(main):002:0> variavel.class
=> Float
  • Método class: retorna uma constante que representa o nome da classe a qual o objeto pertence.

O Ruby também possui tipagem forte, isto quer dizer que com uma variável que já possui um tipo de dado não será possível realizar operações e/ou métodos exclusivos de outros tipos de dados.

irb(main):003:0> variavel.length
NoMethodError: undefined method `length' for 3.2:Float
    from (irb):3
    from /usr/local/bin/irb:11:in `<main>'
  • Método length: retorna a quantidade de caracteres de uma string.

Os tipos de dados de Ruby mais comuns são:

  • Booleano:

    verdadeiro = true
    falso = false
    
  • Inteiro:

    idade = 20
    habitantes = 5_000_000
    
  • Decimal ou Real:

    taxa = 0.34
    preco = 34.21232132
    
  • Strings:

    nome = "João Vitor"
    endereco = 'Universidade de Brasília, Área 1'
    
  • Símbolos:

    funcionalidade = :criar_cargo
    

Tipos de Variáveis

  • Locais: variáveis locais são aquelas usada apenas em algum método. Elas devem começar com letra minúscula ou com underscore (_).

    var = "minha variavel local"
    
  • De instância: variável referenciada por uma instância de classe e por isso a variável pertence a um objeto. Devem começar por @.

    @nome = "Felipe"
    
  • De classe: é partilhada por todos os objetos da classe, apenas um copia da variável é criada para a classe e para todos os seus objetos e deve ser inicializada antes de ser usada. Devem começar por @@.

  • @@contador = 0
    
  • Globais: é acessada em toda a aplicação. Devem começar com $.

    $versao = 2.3.3
    
  • Constantes: não pode ser modificada em outro lugar da aplicação. Devem começar com letra minúscula ou ter todas as letras maiúsculas.

    Pi = 3.14159
    RAZAO_AUREA = 1.618