Update ruby symbols portuguese guide (#32295)

Translation based on english guide:
`https://github.com/freeCodeCamp/freeCodeCamp/blob/master/guide/english/ruby/ruby-symbols/index.md`
This commit is contained in:
Jonathan Martins
2019-08-16 15:41:57 -03:00
committed by Randell Dawson
parent bff9327059
commit f1e6fad974

View File

@ -4,11 +4,11 @@ localeTitle: Ruby Symbols
--- ---
## Ruby Symbols ## Ruby Symbols
Um símbolo se parece com um nome de variável, mas é prefixado com dois pontos. Exemplos -: action,: line\_items Você não tem que pré-declarar um símbolo e é garantido que ele é único. Não há necessidade de atribuir algum tipo de valor a um símbolo - Ruby cuida disso para você. O Ruby também garante que, não importa onde ele apareça no seu programa, um símbolo específico terá o mesmo valor. Um símbolo se parece com um nome de variável, mas é prefixado com dois pontos. Exemplos - `:action`, `:line_items`. Você não tem que pré-declarar um símbolo e é garantido que ele é único. Não há necessidade de atribuir algum tipo de valor a um símbolo - Ruby cuida disso para você. O Ruby também garante que, não importa onde ele apareça no seu programa, um símbolo específico terá o mesmo valor.
Alternativamente, você pode considerar os dois pontos para significar "coisa chamada" assim: id é "a coisa chamada id". Você também pode pensar em: id como significando o nome da variável id e plain id como significando o valor da variável. Alternativamente, você pode considerar os dois pontos para significar "coisa chamada" assim `:id` é "a coisa chamada id". Você também pode pensar em `:id` como significando o nome da variável id e plain id como significando o valor da variável.
Por ex: Assim, se Fred é uma constante em um contexto, um método em outro e uma classe em um terceiro, o símbolo: Fred será o mesmo objeto em todos os três contextos. Por ex: Assim, se Fred é uma constante em um contexto, um método em outro e uma classe em um terceiro, o símbolo `:Fred` será o mesmo objeto em todos os três contextos.
```ruby ```ruby
module One module One
@ -16,12 +16,15 @@ module One
end end
$f1 = :Fred $f1 = :Fred
end end
module Two module Two
Fred = 1 Fred = 1
$f2 = :Fred $f2 = :Fred
end end
def Fred() def Fred()
end end
$f3 = :Fred $f3 = :Fred
$f1.object_id #=> 2514190 $f1.object_id #=> 2514190
$f2.object_id #=> 2514190 $f2.object_id #=> 2514190
@ -30,7 +33,7 @@ module One
## Trabalhando com Símbolos ## Trabalhando com Símbolos
Você pode reconhecer um Símbolo Ruby porque será uma palavra que começa com:. Você pode reconhecer um Símbolo Ruby porque será uma palavra que começa com `:`.
Até agora nós os vimos como a chave em um Hash (Trabalhando com Hashes em Ruby): Até agora nós os vimos como a chave em um Hash (Trabalhando com Hashes em Ruby):
@ -50,7 +53,7 @@ Então, a primeira coisa que podemos fazer é inspecionar um símbolo para ver q
Assim, podemos ver que Símbolos e Strings são instâncias de dois objetos diferentes. Assim, podemos ver que Símbolos e Strings são instâncias de dois objetos diferentes.
Você pode chamar métodos String-como como `upcase` , `downcase` e `capitalize` sobre Símbolos: Você pode chamar métodos String como `upcase`, `downcase` e `capitalize` em Símbolos:
```ruby ```ruby
:hello.upcase :hello.upcase
@ -95,11 +98,10 @@ Uma segunda razão pela qual você usaria um símbolo em uma sequência em deter
Por exemplo: Por exemplo:
```ruby ```ruby
philip".object_id "philip".object_id
=> 70288511587360 => 70288511587360
"philip".object_id "philip".object_id
=> 70288504327720 => 70288504327720
:philip.object_id :philip.object_id
=> 539368 => 539368
:philip.object_id :philip.object_id
@ -108,11 +110,11 @@ philip".object_id
Quando você cria dois objetos String com o mesmo valor, esses dois objetos são tratados como dois objetos diferentes. Quando você cria um símbolo, referenciando o símbolo sempre usará o mesmo objeto. Quando você cria dois objetos String com o mesmo valor, esses dois objetos são tratados como dois objetos diferentes. Quando você cria um símbolo, referenciando o símbolo sempre usará o mesmo objeto.
Isso é muito melhor para o desempenho porque o mesmo objeto String será criado e destruído repetidamente quando, na realidade, o mesmo objeto pode ser reutilizado a cada vez. Isso é muito melhor para o desempenho porque o mesmo objeto String será criado e destruído repetidamente quando na realidade o mesmo objeto pode ser reutilizado a cada vez.
#### Métodos de Classe Pública #### Métodos de Classe Pública
all\_symbols => array clica para alternar a fonte Retorna uma matriz de todos os símbolos atualmente na tabela de símbolos do Ruby. `all_symbols` - Retorna uma matriz de todos os símbolos atualmente na tabela de símbolos do Ruby.
```ruby ```ruby
Symbol.all_symbols.size #=> 903 Symbol.all_symbols.size #=> 903