Nesta aula iremos ver um pouco da história do professor Danilo com a linguagem Ruby, iremos aprender alguns comandos básicos e iremos aprender como você pode agilizar os seus projetos com esta linguagem.

Introdução

Ruby_logo

Ruby é uma linguagem de programação interpretada multiparadigma, de tipagem dinâmica e forte, com gerenciamento de memória automático, originalmente planejada e desenvolvida no Japão em 1995, por Yukihiro "Matz" Matsumoto, para ser usada como linguagem de script. Matsumoto queria desenvolver uma linguagem de script que fosse mais poderosa do que Perl, e mais orientada a objetos do que Python. Ruby suporta programação funcional, orientada a objetos, imperativa e reflexiva. Foi inspirada principalmente por Python, Perl, Smalltalk, Eiffel, Ada e Lisp, ele resultou da união de partes dessas linguagens. Ruby está constantemente entre as top 10 linguagens mais populares. A intenção do Ruby sempre foi ser uma linguagem natural. O Ruby também é totalmente livre. Não somente livre de custos, mas também livre para utilizar, copiar, modificar e distribuir.

Ele tem um sistema de threading independente do Sistema Operacional. Portanto, para todas as plataformas nas quais o Ruby roda, temos multithreading independentemente de o Sistema Operacional suportar ou não, temos multithreading até em MS-DOS! O Ruby não necessita de declarações de variáveis. Usa simples convenções de nomes para denotar o âmbito das variáveis.

Tipagem e Variáveis

Ruby tem Tipagem dinâmica e fortemente tipada. Isso significa que todas as variáveis devem ter um tipo, mas ele é inferido de acordo com a atribuição. Para comparação em linguagens fortemente tipadas como Java e C#, em cada declaração de variável você deve incluir o tipo dela:

      
        int a = 1
      
    

Onde int é o tipo Inteiro, Ruby não permite soma de inteiro com variável. Em Ruby você não precisa dizer que vai declarar uma variável com var ou dizer seu tipo, abaixo comparações em Javascript:

      
        var a = 1;
        var b = 'a';
        a + b // '1a';
        b = '1';
        a == b // true
        a + b // '11'
      
    
Convenções sobre váriaveis
        var # poderia ser uma variável local.   
        @var # é uma variável de instância.   
        @@var # é uma variável de classe.   
        $var # é uma variável global.  
        

Observação:
  • Não existem "tipos primitivos" em Ruby, todos os tipos são classes.

Atualização sobre Ruby 3

Na nova versão 3 do Ruby foi adicionado entre outras coisas a possibilidade de se definir tipagem, é uma nova maneira de escrever código chamada RBS. Criando arquivos .rbs.

        
          # Classes
          class Usuario
            attr_reader nome : String
            attr_reader idade : Integer
            def initialize : (nome: String, idade: Integer) -> [String, Integer]
          end
        
      

Sobre o crescimento do Ruby

Em 2006, o Ruby atingiu aceitação massiva, principalmente impulsionado pelo framework Ruby on Rails(RoR),

Sintaxe

Ruby possui um sintaxe simples e enxuta, não é necessário o ; (ponto e vírgula) para definir o fim de uma instrução. para imprimir uma mensagem no console você pode simplesmente fazer:

      
        puts 'Hello World!'
      
    

Em Ruby tudo é um objeto

Em Ruby, tudo é um objeto. Cada parcela de informação e código podem receber as suas próprias propriedades e ações. A Programação orientada a objetos denomina as propriedades como variáveis de instância e as ações como métodos. A aproximação pura, da orientação aos objetos do Ruby, é geralmente demonstrada pelo seguinte trecho de código que aplica uma ação a um número.

Exemplo Loop em Ruby

      
        10.times{|i| puts i}
      
    

Repare na forma como é escrito 10 times(vezes), literalmete fazer 10 vezes tal instrução.

Em Javascript:

       
        for (var i = 0; i < 9; i++) {
          console.log(i);
      }
      
    

No exemplo acima a variável i está acessivel fora do loop for, porque o var tem um escopo aberto, neste caso substituido por let, caso tentasse acessar de fora do loop receberia um erro. O Ruby consegue entender o escopo da variável, mantendo o escopo fechado.

Sobre a instrução condicional, em outras linguagens comumente if, ruby tem uma particularidade, o if seria "invertido", os parenteses também são opcionais você poderia fazer algo como:

      
        puts 'Oi!' if 1 == 1
      
    

Aula Prática

Acesse o Try Ruby e pratique um pouco dos códigos que falamos.

    
      10.times{|i| puts i}
      a = 1
      puts a
    
  

Comandos Uteis

Abra seu terminal para testar os comandos shell.

Ver versão do Ruby instalada
    
      $ ruby -v
      # ver versão do Ruby
    
  
IRB Terminal interetivo do Ruby
    
      $ irb
      # Pode-se executar qualquer código Ruby aqui
    
  
Concatenação
     
       10.times{|i| puts i.to_s + " - "}
       # to_s - converte o int para string(casting)
       10.times{|i| puts i + " #{i} - "}
       # #{} - Faz com que o i sera convertido para string na concatenação
     
   
Tudo é Objeto

No Ruby tudo pode receber methodos como você viu o 10 recebendo o metodo .times

     
       1.class
       # retorno o tipo da classe, neste caso Fixnum
       1.methods
       # Mostra os metodos disponíveis para esse objeto
     
   



Próximas Aulas


Instalando Ruby

Nesta aula iremos aprender como instalar o Ruby, o que é RVM, GEMS, Bu...

Variáveis e Data Types

Nesta aula iremos aprender como criar variáveis, quais os tipos de var...

Condicionais

Nesta aula iremos aprender os condicionais do Ruby, (if, else, elsif, ...

Tratamento de Strings

Nesta aula iremos aprender os tipos de tratamentos de string utilizado...

Operadores lógicos

Nesta aula você ira aprender os operadores lógicos básicos do Ruby, ir...

Looping

Nesta aula iremos ver comandos como each, times, until, while, que são...

Hash

Nesta aula iremos aprender um objeto muito importante para programador...

Funções

Nesta aula iremos aprender como criar e estruturar uma função em ruby,...



Danilo

Arquiteto de software, analista, programador, professor. Danilo criou o projeto torne-se um programador, para passar o seu conhecimento para a nova geração. Com o intuito de ser um bom pai, Danilo trabalha muito motivado para garantir o futuro de sua filha.

ELEVE SEUS GANHOS E POTENCIALIZE SUA PERFORMANCE

Receba nossa Ebook de LÓGICA DE PROGRAMAÇÃO

© Didox Business & Technology - CNPJ: 12.127.195/0001-14