@@ -17,40 +17,40 @@ header: |
17
17
18
18
---
19
19
20
- Agora vamos criar e usar um objecto Anfitrião:
20
+ Agora vamos criar e usar um objeto Anfitrião:
21
21
22
22
{% highlight irb %}
23
- irb(main):035:0> h = Anfitriao.new("João")
23
+ irb(main):035:0> g = Anfitriao.new("João")
24
24
=> #<Anfitriao:0x16cac @nome ="João">
25
- irb(main):036:0> h .diz_ola
25
+ irb(main):036:0> g .diz_ola
26
26
Ola João
27
27
=> nil
28
- irb(main):037:0> h .diz_adeus
29
- Adeus João, volta em breve.
28
+ irb(main):037:0> g .diz_adeus
29
+ Adeus João, volte em breve.
30
30
=> nil
31
31
{% endhighlight %}
32
32
33
- Uma vez criado o objecto ` h ` , lembra-nos que o nome é João. Mmm, e se
34
- quisermos aceder directamente ao nome?
33
+ Uma vez criado o objeto ` g ` , ele se lembra de que o nome é João. Mmm, e se
34
+ quisermos acessar diretamente o nome?
35
35
36
- {% highlight irb %}
37
- irb(main):038:0> h .@nome
36
+ {% highlight ruby %}
37
+ irb(main):038:0> g .@nome
38
38
SyntaxError: compile error
39
39
(irb):52: syntax error
40
40
from (irb):52
41
41
{% endhighlight %}
42
42
43
- Não o podemos fazer .
43
+ Nope, não conseguimos .
44
44
45
- ## Por baixo da pele do objecto
45
+ ## Objeto por Baixo da Pele
46
46
47
- As variáveis de instância escondem-se dentro do objecto . Não estão assim
48
- tão bem escondidas, podem ser vistas quando se inspecciona o objecto e
49
- há outras formas de lhes aceder , mas Ruby é fiel aos bons costumes da
50
- programação orientada a objectos mantendo os dados o mais privados
47
+ As variáveis de instância escondem-se dentro do objeto . Não estão assim
48
+ tão bem escondidas, podem ser vistas quando se inspeciona o objeto e
49
+ há outras formas de lhes acessar , mas o Ruby é fiel aos bons costumes da
50
+ programação orientada a objetos mantendo os dados o mais privados
51
51
possíveis.
52
52
53
- Então, que métodos estão disponíveis para os objectos Anfitrião?
53
+ Então, que métodos estão disponíveis para os objetos Anfitrião?
54
54
55
55
{% highlight irb %}
56
56
irb(main):039:0> Anfitriao.instance_methods
@@ -66,10 +66,10 @@ irb(main):039:0> Anfitriao.instance_methods
66
66
"instance_variables", "instance_of?"]
67
67
{% endhighlight %}
68
68
69
- Bem . São muitos métodos. Nós só definimos dois métodos. O que é que
70
- aconteceu? Bem estes são ** todos** os métodos para os objectos
69
+ Uau . São muitos métodos. Nós só definimos dois métodos. O que é que
70
+ aconteceu? Bem, estes são ** todos** os métodos para os objetos
71
71
Anfitrião, uma lista completa, incluindo os que estão definidos nas
72
- super-classes de Anfitrião. Se só quisermos listar unicamente os métodos
72
+ super-classes de Anfitrião. Se só quisermos listar os métodos
73
73
definidos para a classe Anfitrião, podemos pedir-lhe que não inclua os
74
74
métodos dos seus ancestrais passando-lhe o parâmetro ` false ` , que
75
75
significa que não queremos os métodos definidos pelos seus ancestrais.
@@ -80,26 +80,26 @@ irb(main):040:0> Anfitriao.instance_methods(false)
80
80
{% endhighlight %}
81
81
82
82
Há mais coisas a explorar. Vejamos a que métodos pode responder o nosso
83
- objecto Anfitrião:
83
+ objeto Anfitrião:
84
84
85
85
{% highlight irb %}
86
86
irb(main):041:0> h.respond_to?("nome")
87
87
=> false
88
- irb(main):042:0> h.respond_to?("dirzer_ola ")
88
+ irb(main):042:0> h.respond_to?("diz_ola ")
89
89
=> true
90
90
irb(main):043:0> h.respond_to?("to_s")
91
91
=> true
92
92
{% endhighlight %}
93
93
94
- Assim ficamos a saber que responde a ` diz_ola ` , e ` to_s ` (que
95
- significa “converter algo numa string”, um método que está definido por
96
- omissão para todos os objectos ), mas que não reconhece ` nome ` como
94
+ Assim sabemos que responde a ` diz_ola ` , e ` to_s ` (que
95
+ significa “converter algo em uma string”, um método que está definido por
96
+ padrão para todos os objetos ), mas que não reconhece ` nome ` como
97
97
método.
98
98
99
- ## Modificar classes— Nunca é demasiado tarde
99
+ ## Modificando Classes – Nunca é Tarde Demais
100
100
101
- E se quiser alterar o nome? Ruby oferece uma forma fácil de lhe permitir
102
- o acesso às variáveis de um objecto .
101
+ E se quisermos ver ou alterar o nome? Ruby oferece uma forma fácil
102
+ de fornecer acesso às variáveis de um objeto .
103
103
104
104
{% highlight irb %}
105
105
irb(main):044:0> class Anfitriao
@@ -108,47 +108,45 @@ irb(main):046:1> end
108
108
=> nil
109
109
{% endhighlight %}
110
110
111
- Em Ruby, podemos voltar a abrir e alterar uma classe. Isso não altera os
112
- objectos já existentes, mas afecta os novos objectos que se possam
113
- criar. Assim vamos criar um novo objecto e vamos brincar com a sua
111
+ Em Ruby, podemos abrir uma classe novamente e alterá-la. As mudanças estarão
112
+ presentes em quaisquer objetos criados e até mesmo nos objetos existentes
113
+ dessa classe. Então vamos criar um novo objeto e vamos brincar com a sua
114
114
propriedade ` @nome ` .
115
115
116
- {% highlight irb %}
117
- irb(main):047:0> h = Anfitriao.new("Pedro")
116
+ {% highlight ruby %}
117
+ irb(main):047:0> g = Anfitriao.new("Pedro")
118
118
=> #<Anfitriao:0x3c9b0 @nome ="Pedro">
119
- irb(main):048:0> h .respond_to?("nome")
119
+ irb(main):048:0> g .respond_to?("nome")
120
120
=> true
121
- irb(main):049:0> h .respond_to?("nome=")
121
+ irb(main):049:0> g .respond_to?("nome=")
122
122
=> true
123
- irb(main):050:0> h .diz_ola
123
+ irb(main):050:0> g .diz_ola
124
124
Ola Pedro
125
125
=> nil
126
- irb(main):051:0> h .nome="Matilde"
126
+ irb(main):051:0> g .nome="Matilde"
127
127
=> "Matilde"
128
- irb(main):052:0> h
128
+ irb(main):052:0> g
129
129
=> #<Anfitrion:0x3c9b0 @nome ="Matilde">
130
- irb(main):053:0> h .nome
130
+ irb(main):053:0> g .nome
131
131
=> "Matilde"
132
- irb(main):054:0> h .diz_ola
132
+ irb(main):054:0> g .diz_ola
133
133
Ola Matilde
134
134
=> nil
135
135
{% endhighlight %}
136
136
137
- O uso de ` attr_accessor ` determina que se tenha definido dois novos
138
- métodos: ` nome ` para obter o valor, e ` nome= ` para o alterar .
137
+ O uso de ` attr_accessor ` definiu dois novos métodos para nós:
138
+ ` nome ` para obter o valor e ` nome= ` para alterá-lo .
139
139
140
- ## Saudar todos, MegaAnfitriao não nega a saudação a ninguém !
140
+ ## Saudando a Tudo e a Todos, MegaAnfitriao não Esquece Ninguém !
141
141
142
- De qualquer modo este Anfitrião não é assim tão interessante, só pode
143
- trabalhar para uma pessoa de cada vez. O que se passaria se tivéssemos
144
- uma classe MegaAnfitriao que pudesse saudar o mundo inteiro, uma pessoa
145
- ou uma lista completa de pessoas?
142
+ De qualquer modo este Anfitrião não é assim tão interessante, ele só consegue
143
+ trabalhar com uma pessoa de cada vez. E se tivéssemos uma classe MegaAnfitriao
144
+ que pudesse saudar o mundo inteiro, uma pessoa ou uma lista inteira de pessoas?
146
145
147
- Vamos escrever isto num ficheiro em vez de usar directamente o
148
- interpretador interactivo do Ruby (IRB).
146
+ Vamos escrever isto num arquivo em vez de usar diretamente o interpretador
147
+ interativo do Ruby (IRB).
149
148
150
- Para sair do IRB, escrevemos “quit”, “exit” ou simplesmente carregamos
151
- nas teclas “Control” e “D”.
149
+ Para sair do IRB, digite “quit”, “exit” ou simplesmente pressione “Control+D”.
152
150
153
151
{% highlight ruby %}
154
152
#!/usr/bin/env ruby
@@ -215,7 +213,7 @@ if __FILE__ == $0
215
213
end
216
214
{% endhighlight %}
217
215
218
- Guardar este ficheiro como “ri20min.rb”, e executar com o comando “ruby
216
+ Salve este arquivo como “ri20min.rb”, e execute-o com o comando “ruby
219
217
ri20min.rb”. O resultado deverá ser:
220
218
221
219
Ola Mundo
@@ -233,6 +231,6 @@ ri20min.rb”. O resultado deverá ser:
233
231
...
234
232
{: .code}
235
233
236
- Há uma série de coisas novas neste novo exemplo às quais podemos [ dar
237
- uma observação mais profunda ] ( ../4/ )
234
+ Há uma série de coisas novas neste exemplo às quais podemos
235
+ [ observar mais profundamente ] ( ../4/ )
238
236
0 commit comments