21
Minicurso de Ruby Minicurso de Ruby XIV SACOMP XIV SACOMP Robson Dornelles Robson Dornelles Gustavo Graña Gustavo Graña

Introdução a Linguagem Ruby

Embed Size (px)

Citation preview

Page 1: Introdução a Linguagem Ruby

Minicurso de RubyMinicurso de RubyXIV SACOMPXIV SACOMP

Robson DornellesRobson DornellesGustavo GrañaGustavo Graña

Page 2: Introdução a Linguagem Ruby

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

Page 3: Introdução a Linguagem Ruby

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...

Page 4: Introdução a Linguagem Ruby

IRB

✔ IRB:− Interpretador (como python)

Page 5: Introdução a Linguagem Ruby

Variáveis

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

Page 6: Introdução a Linguagem Ruby

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

Page 7: Introdução a Linguagem Ruby

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

Page 8: Introdução a Linguagem Ruby

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

Page 9: Introdução a Linguagem Ruby

Expressões Regulares

Page 10: Introdução a Linguagem Ruby

Estruturas de controle

✔ If-then-else:

✔ While:

Page 11: Introdução a Linguagem Ruby

Arrays, Ranges e Iteradores

Page 12: Introdução a Linguagem Ruby

Hashes

Page 13: Introdução a Linguagem Ruby

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)

Page 14: Introdução a Linguagem Ruby

Blocks

Page 15: Introdução a Linguagem Ruby

Entrada e Saída

✔ Entrada/Saída padrão

Page 16: Introdução a Linguagem Ruby

Arquivos

Page 17: Introdução a Linguagem Ruby

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”

Page 18: Introdução a Linguagem Ruby

Classes

Page 19: Introdução a Linguagem Ruby

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

Page 20: Introdução a Linguagem Ruby

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

Page 21: Introdução a Linguagem Ruby

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