diff options
author | Bruno Henrique - Garu <squall.bruno@gmail.com> | 2013-08-14 09:28:22 -0700 |
---|---|---|
committer | Bruno Henrique - Garu <squall.bruno@gmail.com> | 2013-08-14 09:28:22 -0700 |
commit | 2f4dd69821e279eb529b04c507ed72e4a38760dc (patch) | |
tree | 7e917da09ee85b3920d3f9a4c1ba680a5866c8bf /pt-br/ruby-pt.html.markdown | |
parent | 6dab86ce9d6df4211328e64afadb94a64fd955bb (diff) | |
parent | c1b08624fb7b4fa36cb55ad7fcefe98e073ab32c (diff) |
Merge pull request #2 from katyanna/pt-br
finalizando review
Diffstat (limited to 'pt-br/ruby-pt.html.markdown')
-rw-r--r-- | pt-br/ruby-pt.html.markdown | 270 |
1 files changed, 28 insertions, 242 deletions
diff --git a/pt-br/ruby-pt.html.markdown b/pt-br/ruby-pt.html.markdown index cedd2db1..a6021b06 100644 --- a/pt-br/ruby-pt.html.markdown +++ b/pt-br/ruby-pt.html.markdown @@ -3,25 +3,20 @@ language: ruby filename: learnruby.rb contributors: - ["Bruno Henrique - Garu", "http://garulab.com"] + - ["Katyanna Moura"] --- ```ruby -# Isso é um comentario +# Isso é um comentário =begin -This is a multiline comment -No-one uses them -You shouldn't either - -Isso é um comentario multilinha +Isso é um comentário multilinha Ninguém os usa - +Você não deve usar também =end -# First and foremost: Everything is an object. # Primeiro e principal: Tudo é um objeto. -# Numbers are objects # Números são objetos 3.class #=> Fixnum @@ -29,194 +24,139 @@ Ninguém os usa 3.to_s #=> "3" -# Some basic arithmetic -# Aritmética básica +# Um pouco de aritmética básica 1 + 1 #=> 2 8 - 1 #=> 7 10 * 2 #=> 20 35 / 5 #=> 7 -# Arithmetic is just syntactic sugar -# for calling a method on an object -# Arithmetic é apenas açúcar semântico -# para chamar um métoddo de um objeto +# Aritimética é apenas açúcar sintático +# para chamar um método de um objeto 1.+(3) #=> 4 10.* 5 #=> 50 -# Special values are objects -# Valores especiais são obejetos -nil # Nothing to see here +# Valores especiais são objetos nil # Nada para ver aqui -true # truth true # verdadeiro -false # falsehood false # falso nil.class #=> NilClass true.class #=> TrueClass false.class #=> FalseClass -# Equality # Igualdade 1 == 1 #=> true 2 == 1 #=> false -# Inequality # Desigualdade 1 != 1 #=> false 2 != 1 #=> true !true #=> false !false #=> true -# apart from false itself, nil is the only other 'falsey' value # além de 'false', 'nil' é o único outro valor falso !nil #=> true !false #=> true !0 #=> false -# More comparisons # Mais comparações 1 < 10 #=> true 1 > 10 #=> false 2 <= 2 #=> true 2 >= 2 #=> true -# Strings are objects -# Strings são obejetos +# Strings são objects -'I am a string'.class #=> String 'Eu sou uma string'.class #=> String -"I am a string too".class #=> String "Eu também sou uma string".class #=> String -placeholder = "use string interpolation" placeholder = "usar interpolação de string" -"I can #{placeholder} when using double quoted strings" "Eu posso #{placeholder} quando estiver usando aspas duplas" -#=> "I can use string interpolation when using double quoted strings" #=> "Eu posso usar insterpolação de string quando estiver usando aspas duplas" - -# print to the output -# imprime para output (saida) -puts "I'm printing!" +# imprime para output (saída) puts "Estou imprimindo" -# Variables # Variáveis x = 25 #=> 25 x #=> 25 -# Note that assignment returns the value assigned # Note que uma atribuição retorna o valor atribuido -# This means you can do multiple assignment: -# Isso significa que você pode fazer multiplas atribuições: +# Isso significa que você pode fazer múltiplas atribuições: x = y = 10 #=> 10 x #=> 10 y #=> 10 -# By convention, use snake_case for variable names # Por convenção, use snake_case para nomes de variáveis snake_case = true -# Use descriptive variable names -# Use nomes de variáveis descrivos -path_to_project_root = '/good/name/' +# Use nomes de variáveis descritivos caminho_para_a_raiz_do_projeto = '/bom/nome/' -path = '/bad/name/' caminho = '/nome/ruim/' -# Symbols (are objects) -# Simbolos (são objetos) -# Symbols are immutable, reusable constants represented internally by an -# Simbolos são imultáveis, são constantes reutilizáveis representadadas internamente por um -# integer value. They're often used instead of strings to efficiently convey +# Símbolos (são objetos) +# Símbolos são imutáveis, são constantes reutilizáveis representadadas internamente por um # valor inteiro. Eles são frequentemente usados no lugar de strings para transmitir com eficiência os valores -# specific, meaningful values # específicos e significativos -:pending.class #=> Symbol :pendente.class #=> Symbol -status = :pending status = :pendente -status == :pending #=> true status == :pendente #=> true -status == 'pending' #=> false status == 'pendente' #=> false -status == :approved #=> false status == :aprovado #=> false # Arrays -# This is an array # Isso é um array [1, 2, 3, 4, 5] #=> [1, 2, 3, 4, 5] -# Arrays can contain different types of items # Arrays podem conter diferentes tipos de itens -array = [1, "hello", false] #=> => [1, "hello", false] array = [1, "Oi", false] #=> => [1, "Oi", false] -# Arrays can be indexed # Arrays podem ser indexados -# From the front # a partir do começo array[0] #=> 1 array[12] #=> nil -# Like arithmetic, [var] access -# Como aritimetica, o acesso via [var] -# is just syntactic sugar +# Como aritimética, o acesso via [var] # é apenas açúcar sintático -# for calling a method [] on an object # para chamar o método [] de um objeto array.[] 0 #=> 1 array.[] 12 #=> nil -# From the end # a partir do final array[-1] #=> 5 -# With a start and end index # Com um índice de começo e fim array[2, 4] #=> [3, 4, 5] -# Or with a range # Ou com um intervalo de valores array[1..3] #=> [2, 3, 4] -# Add to an array like this # Adicionar a um array como este array << 6 #=> [1, 2, 3, 4, 5, 6] -# Hashes are Ruby's primary dictionary with keys/value pairs. -# Hashes são dicionário com um par de chave(key)/valor(value) -# Hashes are denoted with curly braces: +# Hashes são o principal dicionário de Ruby com pares de chaves(keys)/valor(value). # Hashes são simbolizados com chaves "{}" -hash = {'color' => 'green', 'number' => 5} hash = {'cor' => 'verde', 'numero' => 5} hash.keys #=> ['cor', 'numero'] -# Hashes can be quickly looked up by key: -# Hashes podem ser rapidamente pesquisado pela chave (key) +# Hashes podem ser rapidamente pesquisados pela chave (key) hash['cor'] #=> 'verde' hash['numero'] #=> 5 -# Asking a hash for a key that doesn't exist returns nil: # Procurar em um hash por uma chave que não existe retorna nil: -hash['nothing here'] #=> nil hash['nada aqui'] #=> nil -# Iterate over hashes with the #each method: # Interar sobre hashes com o método #each: hash.each do |k, v| puts "#{k} is #{v}" @@ -226,32 +166,18 @@ hash.each do |k, v| puts "#{k} é #{v}" end -# Since Ruby 1.9, there's a special syntax when using symbols as keys: -# Desde o Ruby 1.9, temos uma sintaxe especial quando usamos simbolos como chaves (keys) +# Desde o Ruby 1.9, temos uma sintaxe especial quando usamos símbolos como chaves (keys) -new_hash = { defcon: 3, action: true} novo_hash = { defcon: 3, acao: true} -new_hash.keys #=> [:defcon, :action] novo_hash.keys #=> [:defcon, :acao] -# Tip: Both Arrays and Hashes are Enumerable -# Dica: Tanto Arrays quanto Hashes são Enumerable -# They share a lot of useful methods such as each, map, count, and more +# Dica: Tanto Arrays quanto Hashes são Enumerable. # Eles compartilham um monte de métodos úteis como each, map, count e mais -# Control structures # Estruturas de controle if true - "if statement" -elsif false - "else if, optional" -else - "else, also optional" -end - -if true "Se verdadeiro" elsif false "else if, opicional" @@ -259,10 +185,6 @@ else "else, também é opicional" end -for counter in 1..5 - puts "iteration #{counter}" -end - for contador in 1..5 puts "interação #{contador}" end @@ -272,17 +194,10 @@ end #=> contador 4 #=> contador 5 -# HOWEVER # PORÉM -# No-one uses for loops # Ninguém usa para loops -# Use `each` instead, like this: # Use "each" em vez, dessa forma: -(1..5).each do |counter| - puts "iteration #{counter}" -end - (1..5).each do |contador| puts "interação #{contador}" end @@ -292,12 +207,6 @@ end #=> contador 4 #=> contador 5 -counter = 1 -while counter <= 5 do - puts "iteration #{counter}" - counter += 1 -end - contador = 1 while contador <= 5 do puts "interação #{contador}" @@ -309,28 +218,11 @@ end #=> contador 4 #=> contador 5 -grade = 'B' - -case grade -when 'A' - puts "Way to go kiddo" -when 'B' - puts "Better luck next time" -when 'C' - puts "You can do better" -when 'D' - puts "Scraping through" -when 'F' - puts "You failed!" -else - puts "Alternative grading system, eh?" -end - grau = 'B' case grau when 'A' - puts "Um longo caminho a percorrer pequeno gafanhoto" + puts "Um longo caminho a percorrer, pequeno gafanhoto" when 'B' puts "Melhor sorte da próxima vez" when 'C' @@ -343,56 +235,33 @@ else puts "Alternative grading system, eh?" end -# Functions # Funções def dobrar(x) x * 2 end -# Functions (and all blocks) implcitly return the value of the last statement # Funções (e todos os blocos) retornam implicitamente o valor da última linha -double(2) #=> 4 dobrar(2) #=> 4 -# Parentheses are optional where the result is unambiguous # Parênteses são opicionais onde o resultado é claro -double 3 #=> 6 dobrar 3 #=> 6 -double double 3 #=> 12 dobrar dobrar 3 #=> 12 -def sum(x,y) - x + y -end - def somar(x,y) x + y end -# Method arguments are separated by a comma -# Argumentos de métodos são separados por uma virgula -sum 3, 4 #=> 7 +# Argumentos de métodos são separados por uma vírgula somar 3, 4 #=> 7 somar somar(3,4), 5 #=> 12 # yield -# All methods have an implicit, optional block parameter # Todos os métodos possuem implicitamente um paramêntro opcional que é um bloco -# it can be called with the 'yield' keyword # ele pode ser chamado com a palavra chave 'yield' -def surround - puts "{" - yield - puts "}" -end - -surround { puts 'hello world' } - - def ao_redor puts "{" yield @@ -406,52 +275,16 @@ ao_redor { puts 'Olá mundo' } # } -# Define a class with the class keyword # Define uma classe com a palavra chave 'class' -class Human - - # A class variable. It is shared by all instances of this class. - @@species = "H. sapiens" - - # Basic initializer - def initialize(name, age=0) - # Assign the argument to the "name" instance variable for the instance - @name = name - # If no age given, we will fall back to the default in the arguments list. - @age = age - end - - # Basic setter method - def name=(name) - @name = name - end - - # Basic getter method - def name - @name - end - - # A class method uses self to distinguish from instance methods. - # It can only be called on the class, not an instance. - def self.say(msg) - puts "#{msg}" - end - - def species - @@species - end - -end - class Humano - # Uma variavel de classe. Ela é compartilhada por todas as instancias dessa classe + # Uma variável de classe. Ela é compartilhada por todas as instâncias dessa classe @@especies = "H. sapiens" # Inicialização básica (contructor) def initialize(nome, idade=0) - # Atribui o argumento para a variavel de instacia "nome" do objeto + # Atribui o argumento para a variável de instancia "nome" do objeto @nome = nome # Se a idade não for passada, nós definimos um valor padrão na lista de argumentos @idade = idade @@ -467,7 +300,7 @@ class Humano @nome end - # Um método de classe usa a palavra chave self para se defenciar dos métodos de instancia. + # Um método de classe usa a palavra chave self para se defenciar dos métodos de instância. # Ele só pode ser chamado na classe, não na instancia def self.diz(msg) puts "#{msg}" @@ -480,56 +313,29 @@ class Humano end -# Instantiate a class -# Instaciando uma classe -jim = Human.new("Jim Halpert") +# Instanciando uma classe jim = Humano.new("Jim Halpert") -dwight = Human.new("Dwight K. Schrute") dwight = Humano.new("Dwight K. Schrute") -# Let's call a couple of methods # Vamos chamar um par de métodos -jim.species #=> "H. sapiens" jim.especies #=> "H. sapiens" -jim.name #=> "Jim Halpert" jim.nome #=> "Jim Halpert" -jim.name = "Jim Halpert II" #=> "Jim Halpert II" jim.nome = "Jim Halpert II" #=> "Jim Halpert II" -jim.name #=> "Jim Halpert II" jim.nome #=> "Jim Halpert II" -dwight.species #=> "H. sapiens" dwight.especies #=> "H. sapiens" -dwight.name #=> "Dwight K. Schrute" dwight.nome #=> "Dwight K. Schrute" -# Call the class method # Chamar o método de classe -Human.say("Hi") #=> "Hi" Humano.diz("Oi") #=> "Oi" -# Class also is object in ruby. So class can have instance variables. -# Uma classe também é objeto em Ruby. Então uma classe pode possuir um variavel de instancia -# Class variable is shared among the class and all of its descendants. -# Variavies de classe são compartilhadas entre a classe e todos os seus descendentes. - -# base class -class Human - @@foo = 0 - - def self.foo - @@foo - end - - def self.foo=(value) - @@foo = value - end -end +# Uma classe também é objeto em Ruby. Então uma classe pode possuir variável de instância +# Variáveis de classe são compartilhadas entre a classe e todos os seus descendentes. # Classe base @@ -549,30 +355,13 @@ end class Trabalhador < Humano end -Human.foo # 0 Humano.foo # 0 -Worker.foo # 0 Trabalhador.foo # 0 -Human.foo = 2 # 2 Humano.foo = 2 # 2 -Worker.foo # 2 Trabalhador.foo # 2 -# Class instance variable is not shared by the class's descendants. -# Uma variavel de instancia não é compartilhada por suas classes decendentes. - -class Human - @bar = 0 - - def self.bar - @bar - end - - def self.bar=(value) - @bar = value - end -end +# Uma variável de instância não é compartilhada por suas classes decendentes. class Humano @bar = 0 @@ -586,9 +375,6 @@ class Humano end end -class Doctor < Human -end - class Doutor < Humano end |