Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouMaria Cruz Alterado mais de 9 anos atrás
1
Ruby André Braga Patrícia Lustosa
2
Yukihiro Matsumoto (“Matz”), 1993 Perl Smalltalk Eiffel Ada Lisp “Natural, not simple” “More powerful than Perl and more OO than Python”
3
Simplicidade e Produtividade Para pessoas – Sintaxe elegante e fácil – Fácil de ler e escrever – Poderosa Interpretada Tipagem dinâmica OO : TUDO é objeto – Sem tipos primitivos.
4
Convenções Classes e Módulos Métodos Variáveis locais Variáveis de instância MinhaClasse meu_metodo_legal minha_variavel @var_de_instancia
5
Programando IRB (Interactive Ruby) SciTE (editor) – F5 para executar
6
Tudo é objeto 1)
7
Orientação a Objetos Como em Smalltalk, tudo é objeto C++ e Java: híbridas – Objetos e tipos primitivos Mais eficiente para algumas aplicações, mas… OO puro é mais consistente e fácil de usar
8
Orientação a Objetos Tipos primitivos: -1.abs Nil: nil.methods Classes: Song.new Blocos: podem até ser passados como parâmetros
9
Variáveis 2)
10
Variáveis Podem ser – locais – globais – de instância – ou estáticas E podem ser constantes localVar = 2 $globalVar = “3” @instaceVar = 4.3 @@staticVar = [2,3] Pi = 3.1416 Name = “Ruby”
11
Escopo
12
Constantes
13
Tipos 3)
14
String Number Symbol Array HashString Aspas simples ou duplas Permitem interpolação #{expressão}: def metodo_qualquer(nome) puts “O nome é: #{nome}” end
15
String Number Symbol Array HashString \” \\ \a bell/alert \b backspace \r carriage return \n \s \t Caracteres de escape
16
String Number Symbol Array HashString concat, <<, +, ==, eql? include? length, size to_f, to_i float/int to_s de outros tipos Alguns métodos
17
String Number Symbol Array HashString >> puts “hello,\nworld” hello, World >>%w(a b c) (separa nos espaços em branco) => [“a”, “b”, “c”]
18
Fixnum – Inteiros entre -2 30 and 2 30-1 Bignum – Fora do intervalo de Fixnum, “infinitos”. Limite aproximado: 2 2 18 Float Conversão automática String Number Symbol Array HashNumber
19
Como tudo é objeto… operadores são açucares sintáticos! String Number Symbol Array Hash 4 + 7 4.+(7) >> var_a = 300 >> var_a.class >> var_a += 40832000000 >> var_a.class => 300 => Fixnum => 40832000300 => Bignum
20
Representação interna de um nome Atômico, imutável e único – Todas as referências para um único objeto String Number Symbol Array Hash Symbol >> :my_value.equal?(:my_value) => true >> “my_value”.equal?(“my_value”) => false
21
Economia de memória! Fáceis de usar, fica mais bonito… Uso: – Hash keys (:name=> ‘Brian’, :hobby=> ‘golf’) – Parâmetros (:name, :title) – Nomes de métodos (:post_comment) String Number Symbol Array Hash
22
Arrays – [“a”, “b”, 3, 5.6] Hash – Chaves apotando para valores – Cada chave é única – Hash.new ou meu_hash={“a” => 1, “b”=>2} String Number Symbol Array HashArray Hash
23
Palavras Reservadas 4)
24
Reserved Keywords =begin =end alias and begin BEGIN break case class def defined? do else elsif END end ensure false for if in module next nil not or redo rescue retry return self super then true undef unless until when while yield
25
Estruturas de Controle 5)
26
Condicionais
28
Loop
31
Classes 6)
32
Definindo Classes
33
Instanciação Uma instância é criada a partir de uma classe usando o método new (de Class) anObject = MyClass.new(parameters) Essa função constrói um objeto na memória e passa a execução para a função initialize da classe, se houver.
34
Exemplo
35
Variáveis de Instância >ruby rocketShip.rb rocketShip.rb:13: undefined method `destination' for # (NoMethodError) >Exit code: 1
36
Writers and Readers
37
Accessors
38
Herança Suporte à herança simples Todos os atributos e métodos não-privados de super-classe são herdados pela sub-classe.
39
Herança
40
Módulos Módulos são coleções de métodos Classes podem ´mixin´ um módulo e receber todos os métodos do módulo diretamente Simulam herança múltipla
41
Comparable Classe < < > > >= between Módulo <= ==
42
Comparable pessoa.rb:19: undefined method `<' for #<Pessoa:0x27f4688 @nome="Paty", @idade=21> (NoMethodError)
43
Incluindo Comparable
44
Expressões Regulares 7)
45
/regex/ Casamento de padrões AbreviaçãoSignificadoOposto \d[0-9]\D \sEspaço em branco\S \w[A-Za-z0-9_]\W.Qualquer caracter
46
/(c|C)omp\w+.*s/ retorna a posição retorna o que casou
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.