A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Ruby André Braga Patrícia Lustosa. Yukihiro Matsumoto (“Matz”), 1993 Perl Smalltalk Eiffel Ada Lisp “Natural, not simple” “More powerful than Perl and.

Apresentações semelhantes


Apresentação em tema: "Ruby André Braga Patrícia Lustosa. Yukihiro Matsumoto (“Matz”), 1993 Perl Smalltalk Eiffel Ada Lisp “Natural, not simple” “More powerful than Perl and."— Transcrição da apresentação:

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

27

28 Loop

29

30

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


Carregar ppt "Ruby André Braga Patrícia Lustosa. Yukihiro Matsumoto (“Matz”), 1993 Perl Smalltalk Eiffel Ada Lisp “Natural, not simple” “More powerful than Perl and."

Apresentações semelhantes


Anúncios Google