Variáveis e Data Types

Nesta aula iremos aprender como criar variáveis, quais os tipos de variáveis e quais os tipos de dados que utilizamos em Ruby.

assinaturaAssine nossa Comunidade

Variáveis e Data Types

No Ruby temos esses tipos principais(Data Types):

  • Numbers
  • Boolean
  • Strings
  • Hashes
  • Arrays
  • Symbols
  • Nilclass
  • Hash
  • Range

Tipos de Numbers
Classe Descrição Exemplo
Fixnum Integer Numeros "normais" 1
Bignum Integer Numeros grandes 999999999999
Float Numeros Decimais 7.0
Complex Numeros Imaginários 4 + 3i
Rational Frações 9/4
BigDecimal Números decimais de alta precisão 0.99999999999

Observação sobre aspas:
Com aspas duplas ", você pode concatenar usando #{}, já com aspas simples terá que usar sinal de +.

Acesso o irb para testar alguns códigos

Exemplo no Ruby: 2.7
      
        # Tudo é um objeto.
        > 1.class
        => Integer
      
    
Conversão de tipo - Casting

No Ruby temos acesso a métodos específicos de conversão, por exemplo: Dada variável a, para converter para um inteiro, basta fazer

        
        # Converte para inteiro
        a.to_i
        
        # Converte para string
        a.to_s
        
      

Tipos de variáveis váriaveis
           xis = 1 # variável simples.   
           @xis = 1 # é uma variável de instância.   
           @@xis = 1 # é uma variável de classe.   
           $Xis = 1  # é uma variável global.  
        
Observação do Professor:

No Ruby a Orientação a Objetos é um conceito essencial para o entendimento da linguagem, você pode estudar mais O.O. através dos outros vídeos do canal, como os de C#.

No irb você pode testar o método .methods, que retorna todos métodos disponiveis para aquela classe.

       > BasicObject.methods
    

Observe que nas versões mais novas do Ruby, 2.5 ou 2.7 você receberá um retorno diferente no 1.class, na aula o professor usa o Ruby 2.3.3, onde retornava Fixnum, nas versões mais novas ouve uma mudança para o Integer como tipo numérico básico. Com o .superclass você consegue ver a classe pai daquela classe.

Você pode configurar o seu RVM como 2.3.3 no .rvmrc para acompanhar as aulas como foi ensinado nas aulas passadas.

Agora criaremos um arquivo aula.rb, lembrando de criar o arquivo Gemfile com o source 'https://rubygems.org' e gem 'byebug'

      
        require 'byebug'
        debugger

        h = {}
        puts "string".class
        puts 1.class
        puts 1.class.superclass
        puts 1.class.superclass.superclass
        puts 4.3.class
        puts 4.3.class.superclass
        puts nil.class
        puts h.class
        puts :symbol.class
        puts [].class
        puts (1..8).class
      
    

Você pode rodar usando ruby aula.rb, com o byebug a tecla n, avança para a próxima linha.

Lembrando da questão da tipagem, você não podera trabalhar uma variável string em determinadas operações com um inteiro sem fazer o casting(conversão de tipo),

Exemplos de variáveis
  
    require 'byebug'
    debugger

    a = 1 # é uma variável local.
    puts a

    @a = 2 # é uma variável de instância.
    puts @a
  
    @@a = 3 # é uma variável de classe.
    puts @@a

    $a = 4  # é uma variável global.
    puts @a

    A = 5 # Uma constante.
    puts A
  

Exemplo variável de instância

  
    require 'byebug'
    debugger

    @a = 1
    def teste
      puts @a
    end

    teste

  

Exemplo de variável de classe fora da classe, executa mas exibe um aviso.

  
    require 'byebug'
    @@a = 1 # Maneira errada de fazer
    class Teste
      @@a = 4
      def a
        puts @@a
      end
    end
    puts Teste.new.a

  

Mais exemplos

  
    require 'byebug'
    
    # Maneiras corretas de fazer
    $a = 2  
    A = 3
    
    class Teste
      def initianlize
      # variável de instância
        @a = 4
      end
      # variável de classe
      @@a = 4

      # Aqui você pode acessar uma variálvel global ou uma constante
      def a
        # constante
        A
        # variável global
        $a
      end
    end

    puts Teste.new.a
  

Variáveis e Data Types

Nesta aula iremos aprender como criar variáveis, quais os tipos de variáveis e quais os tipos de dados que utilizamos em Ruby.

Próximas Aulas:
assinaturaAssine nossa Comunidade

Variáveis e Data Types

No Ruby temos esses tipos principais(Data Types):

  • Numbers
  • Boolean
  • Strings
  • Hashes
  • Arrays
  • Symbols
  • Nilclass
  • Hash
  • Range

Tipos de Numbers
Classe Descrição Exemplo
Fixnum Integer Numeros "normais" 1
Bignum Integer Numeros grandes 999999999999
Float Numeros Decimais 7.0
Complex Numeros Imaginários 4 + 3i
Rational Frações 9/4
BigDecimal Números decimais de alta precisão 0.99999999999

Observação sobre aspas:
Com aspas duplas ", você pode concatenar usando #{}, já com aspas simples terá que usar sinal de +.

Acesso o irb para testar alguns códigos

Exemplo no Ruby: 2.7
      
        # Tudo é um objeto.
        > 1.class
        => Integer
      
    
Conversão de tipo - Casting

No Ruby temos acesso a métodos específicos de conversão, por exemplo: Dada variável a, para converter para um inteiro, basta fazer

        
        # Converte para inteiro
        a.to_i
        
        # Converte para string
        a.to_s
        
      

Tipos de variáveis váriaveis
           xis = 1 # variável simples.   
           @xis = 1 # é uma variável de instância.   
           @@xis = 1 # é uma variável de classe.   
           $Xis = 1  # é uma variável global.  
        
Observação do Professor:

No Ruby a Orientação a Objetos é um conceito essencial para o entendimento da linguagem, você pode estudar mais O.O. através dos outros vídeos do canal, como os de C#.

No irb você pode testar o método .methods, que retorna todos métodos disponiveis para aquela classe.

       > BasicObject.methods
    

Observe que nas versões mais novas do Ruby, 2.5 ou 2.7 você receberá um retorno diferente no 1.class, na aula o professor usa o Ruby 2.3.3, onde retornava Fixnum, nas versões mais novas ouve uma mudança para o Integer como tipo numérico básico. Com o .superclass você consegue ver a classe pai daquela classe.

Você pode configurar o seu RVM como 2.3.3 no .rvmrc para acompanhar as aulas como foi ensinado nas aulas passadas.

Agora criaremos um arquivo aula.rb, lembrando de criar o arquivo Gemfile com o source 'https://rubygems.org' e gem 'byebug'

      
        require 'byebug'
        debugger

        h = {}
        puts "string".class
        puts 1.class
        puts 1.class.superclass
        puts 1.class.superclass.superclass
        puts 4.3.class
        puts 4.3.class.superclass
        puts nil.class
        puts h.class
        puts :symbol.class
        puts [].class
        puts (1..8).class
      
    

Você pode rodar usando ruby aula.rb, com o byebug a tecla n, avança para a próxima linha.

Lembrando da questão da tipagem, você não podera trabalhar uma variável string em determinadas operações com um inteiro sem fazer o casting(conversão de tipo),

Exemplos de variáveis
  
    require 'byebug'
    debugger

    a = 1 # é uma variável local.
    puts a

    @a = 2 # é uma variável de instância.
    puts @a
  
    @@a = 3 # é uma variável de classe.
    puts @@a

    $a = 4  # é uma variável global.
    puts @a

    A = 5 # Uma constante.
    puts A
  

Exemplo variável de instância

  
    require 'byebug'
    debugger

    @a = 1
    def teste
      puts @a
    end

    teste

  

Exemplo de variável de classe fora da classe, executa mas exibe um aviso.

  
    require 'byebug'
    @@a = 1 # Maneira errada de fazer
    class Teste
      @@a = 4
      def a
        puts @@a
      end
    end
    puts Teste.new.a

  

Mais exemplos

  
    require 'byebug'
    
    # Maneiras corretas de fazer
    $a = 2  
    A = 3
    
    class Teste
      def initianlize
      # variável de instância
        @a = 4
      end
      # variável de classe
      @@a = 4

      # Aqui você pode acessar uma variálvel global ou uma constante
      def a
        # constante
        A
        # variável global
        $a
      end
    end

    puts Teste.new.a