formação ruby & redu :: introdução a ruby
Post on 19-Oct-2015
112 Views
Preview:
DESCRIPTION
TRANSCRIPT
-
Introduo a Ruby
Tiago Lima !
13 de Maro de 2014
-
Objetivos
Conhecer a histria e caractersticas da linguagem
Instalar o Ruby 2.0.0
Conhecer o console interativo
Familiarizar-se com a linguagem
-
Histria
-
Histria
Criada por Yukihiro Matz Matsumoto em 1995
Misturou partes das suas linguagens favoritas: Perl, Smalltalk, Eiel, Ada e Lisp
Ruby projetada para fazer os programadores felizes (Matz)
-
Caractersticas
-
Caractersticas
Interpretadada
Multiplataforma
-
Caractersticas
Intuitiva
2.days.ago!Time.now!3.times!
-
Caractersticas
Flexvel
class String! def letters! self.gsub(/\d/, "")! end!end!!"ru2378by823ro2343ots".letters!# => "rubyroots"!
-
Caractersticas
Multiparadigma
Orientada a Objetos
mandela = Person.new!gandhi = Person.new!mandela.say_hello!mandela.be_friends_with(gandhi)
-
Caractersticas
Multiparadigma
Funcional
[1, 2, 3, 4, 5].select { |n| n % 2 == 0 }
-
Caractersticas
Multiparadigma
Imperativa
numbers = [1, 2, 3, 4, 5]!even = []!numbers.each do |n|! even
-
Caractersticas
Multiparadigma
Reflexiva
beagle.is_a? Animal!# => true!!"A String".methods!# => [:, :==, :===, :eql?, :hash, !:casecmp, :+, :*, :%, :[], :[]=, :insert, :length, :size, :bytesize, :empty?, :=~, :match, :succ, :succ!,(...)]
-
Caractersticas
Tipagem
Dinmica
Forte
name = "Nelson Mandela"!age = 94!!name + age!# => TypeError: can't convert Fixnum into!String!
-
Caractersticas
Tudo objeto
3.times!# => #!!'im an object'.emtpy?!# => false!
-
Classes e mtodos
-
Classes
Definindo uma classeclass User attr_accessor :name, :age ! def initialize(name, age) name = name age = age end end !u = User.new("Goku", 2000) u.name # => Goku u.name = "Trunks"
-
Mtodos
Definindo um mtodoclass User ... def to_s name_capitalized + " nascido no ano de " + year_birth.to_s end ! private ! def name_capitalized name.capitalize end ! def year_birth Time.now.year - age end end !goku.to_s # => "Goku nascido no ano de 1993"
-
Instalao
-
Instalando no Linux/Mac
$ \curl -L https://get.rvm.io | bash -s stable --ruby
https://rvm.io/
http://railscasts.com/episodes/200-rails-3-beta-and-rvm
-
Instalando no Windows
http://railsinstaller.org/
-
RubyGems
-
RubyGems
RubyGems.org is the Ruby community's gem hosting service.
http://rubygems.org/Biblioteca
-
RubyGems
$ gem install my-gem!!$ irb!2.0.0p195 :001> require my-gem!=> true
-
irb Ruby Interativo
-
O que ?
Contido na instalao
Interpretador interativo do Ruby
Avalia expresses contidas no cdigo
timo para ter o primeiro contato com a linguagem
-
Como Executar
Mac OS e Linux
Para inici-lo, basta abrir o terminal e executar o irb
Exemplo no terminal do Mac OS
-
Como Executar
Windows
Abrir o Interactive Ruby
Exemplo com Ruby 1.9.2
-
Hello World
O Hello World no pode faltar!
2.0.0p195 :002 > puts "Hello World"!Hello World! => nil
-
Hello World
O que aconteceu?
!
!
puts Comando bsico para imprimir
nil Representa o valor nulo
O comando puts imprime o parmetro e retorna nil
2.0.0p195 :002 > puts "Hello World"!Hello World! => nil
-
Explorando o irb
Clculos simples
Soma (+), Subtrao (-), Multiplicao (*), Diviso (/), Potenciao (**), etc.
2.0.0p195 :012 > 1 + 3! => 4 !2.0.0p195 :013 > 1 * 3! => 3 !2.0.0p195 :014 > 2 ** 3! => 8 !2.0.0p195 :015 > 2 / 3! => 0 !2.0.0p195 :016 > 2.0 / 3! => 0.6666666666666666
-
Exerccios
-
Exerccios
Instale o Ruby
Explore a linguagem atravs do irb
Use o http://tryruby.org, tutorial online
-
Exerccios
Defina uma classe que representa um Conjunto de Strings, suportando operaes de conjuntos:
Adicionar uma String
Checar se o cojunto contm uma String especfica
Remover uma String
Nmero de Strings em um conjunto
Unio de dois conjuntos
Interseo de dois conjuntos
-
Obrigado!
-
Referncias
Documentao do Ruby: http://ruby-doc.org/
Tutorial sobre Ruby: http://tryruby.org/
Curso do Code School de Ruby: https://www.codeschool.com/courses/try-ruby
top related