Introdução a Linguagem Ruby

Preview:

Citation preview

Minicurso de RubyMinicurso de RubyXIV SACOMPXIV SACOMP

Robson DornellesRobson DornellesGustavo GrañaGustavo Graña

Introdução

✔ Características:− Interpretada – irb− Puramente orientada a objetos− Herança única:

● Módulos – 'mixins'− Tipagem dinâmica− Garbage collector− Threads nativas− Tratamento de exceções− Sintaxe elegante

Introdução

✔ Biblioteca padrão:− Inteiros 'infinitos' (Fixnum e Bignum)− Expressões regulares− Iteradores− Arrays− Hashes− Blocos de código− Protocolos da Internet− Conexão com banco de dados− Etc, etc, etc, etc, etc, etc...

IRB

✔ IRB:− Interpretador (como python)

Variáveis

✔ Variaveis:− Não possuem tipo fixo – tipagem dinâmica− Não necessitam de declaração− Referência

Variáveis

✔ Escopo:− variavel_comum = 10− $var_global = 10− @atributo_de_classe = 10− @@atributo_estático_de_classe = 10

✔ Conversões:− to_s, to_i, to_f, to_a

✔ Variaveis simples → var = “abc” (referência mutável)✔ Constante → Pi = 3,1415... (imutável)✔ Símbolo → :simb

Classes Numéricas

✔ Classes Numéricas:− Float, Fixnum e Bignum− Coerção entre os tipos− Representação com precisão 'infinita'− Caso um Fixnum de overflow, conversão é automática

− Valores imediatos● 'Embarcados' na referência → + desempenho

Strings

✔ String:− Alguns métodos:

● reverse, chomp, upcase, upcase!, split, slice, size, +, *

− Mais métodos:● String.methods● Onde conhecer e testar os métodos → IRB

Expressões Regulares

Estruturas de controle

✔ If-then-else:

✔ While:

Arrays, Ranges e Iteradores

Hashes

Funções

✔ Criar arquivo com extensão .rb

✔ $ ruby 'arquivo'.rb lalala lululu✔ Exercício! criar programa que receba um nome e conte o numero de letras deste nome (cuidado para não contar os espaços)

Blocks

Entrada e Saída

✔ Entrada/Saída padrão

Arquivos

Arquivos

✔ Outros métodos:− rewind− readlines− File.methods.sort

✔ Exercicio! criar programa que o nome de um arquivo entrada.txt e crie um novo arquivo com as linhas do arquivo orinigal invertidas. O nome do novo arquivo deve ser {nome do arquivo original)_invertido.txt✔ Dica:

− a = “123”− b = “#{a}456”− ou b = a + “456”

Classes

Exercício

✔ Criar um programa que receba um nome próprio e gere um acronimo:

− Ex:● ruby prog.rb Robson Sejanes Soares Dornelles● Saída: RSSD

− Dica: no exemplo, o array de argumentos passados ao programa, ARGV, possuirá quatro elementos

Exercício

✔ Conseguimos entender as palavras mesmo que elas estejam embaralhadas

− Ex: Etse cruso etsa miuto leagl✔ Criar um programa que receba o nome de um arquivo de texto como argumento e bagunce as palavras deste arquivo. O texto bagunçado deve ser apresentado na saída padrão✔ Dicas:

− array.sort_by− array.slice− www.google.com

E agora?

✔ Muito material na internet− http://mislav.uniqpath.com/poignant-guide/book/− http://www.ruby-lang.org/en/

✔ Tópicos interessantes− Programação com sockets− Programação para web (Ruby On Rails)− Threads− Ruby-gtk