Verificados capitulos 1 y 2
This commit is contained in:
18
es/02.5.md
18
es/02.5.md
@@ -4,7 +4,7 @@ En las ultimas dos secciones hablamos de funciones y struct, alguna vez pensaste
|
||||
|
||||
## Métodos
|
||||
|
||||
Supongamos que definimos un struct del estilo rectángulo(rectangle), y usted busca calcular el área, por lo general vamos a usar el siguiente código para lograr este objetivo.
|
||||
Supongamos que definimos un struct del estilo rectángulo(rectangle), y buscas calcular el área, por lo general vamos a usar el siguiente código para lograr este objetivo.
|
||||
```
|
||||
package main
|
||||
import "fmt"
|
||||
@@ -36,7 +36,7 @@ Obviamente, no es “cool”. Además el área debería ser propiedad del circul
|
||||
|
||||
Por estas razones, tenemos conceptos sobre `métodos`. `métodos` es afiliado a un tipo, tienen la misma sintaxis que una función excepto por una palabra más después de la palabra reservada `func` que es llamada receptor (`receiver`) que es el cuerpo principal de ese método.
|
||||
|
||||
Utilice el mismo ejemplo, `Rectangle.area()` pertenece al rectángulo, no como una función periférica. Mas específicamente, `length`, `width` y `area()` todos pertenecen a rectángulo.
|
||||
Utiliza el mismo ejemplo, `Rectangle.area()` pertenece al rectángulo, no como una función periférica. Mas específicamente, `length`, `width` y `area()` todos pertenecen a rectángulo.
|
||||
|
||||
Como dice Rob Pike.
|
||||
|
||||
@@ -45,7 +45,7 @@ Como dice Rob Pike.
|
||||
Sintaxis de un método.
|
||||
```
|
||||
func (r ReceiverType) funcName(parameters) (results)
|
||||
```
|
||||
```
|
||||
Cambiemos el ejemplo anterior para utilizar métodos.
|
||||
```
|
||||
package main
|
||||
@@ -121,7 +121,7 @@ Espero que ahora sepa como utilizar los tipos personalizados. Es similar a `type
|
||||
|
||||
Volvamos a los `métodos`.
|
||||
|
||||
Puede utilizar tantos métodos en tipos personalizados como desees.
|
||||
Puedes utilizar tantos métodos en tipos personalizados como desees.
|
||||
```
|
||||
package main
|
||||
import "fmt"
|
||||
@@ -210,17 +210,17 @@ Entonces vamos a definir algunos métodos para personalizar nuestros tipos.
|
||||
- PaintItBlack() configuramos el color para todas las Box en BoxList a negro.
|
||||
- String() usamos Color como su receptor, devolvemos un string con formato de el nombre del color.
|
||||
|
||||
Es mucho mas claro cuando usamos palabras para describir nuestro requerimientos? Usualmente escribimos nuestros requerimientos antes de comenzar a programar.
|
||||
¿Es mucho mas claro cuando usamos palabras para describir nuestro requerimientos? Usualmente escribimos nuestros requerimientos antes de comenzar a programar.
|
||||
|
||||
### Utilizar punteros como un receptor
|
||||
|
||||
Vamos a mirar el método `SetColor`, su receptor es un puntero de tipo Box. Si, podes usar `*Box` como receptor. Porque usaríamos un puntero acá? Porque buscamos cambiar el color de Box en este método, si no usamos un puntero, solo cambiaría el valor de la copia de Box.
|
||||
Vamos a mirar el método `SetColor`, su receptor es un puntero de tipo Box. Si, puedes usar `*Box` como receptor. ¿Por qué usaríamos un puntero aquí? Porque buscamos cambiar el color de Box en este método, si no usamos un puntero, solo cambiaría el valor de la copia de Box.
|
||||
|
||||
Si vemos el receptor como el primer argumento de los métodos, no es difícil de entender como funcionan estos.
|
||||
|
||||
Podría decir que deberíamos usar `*b.Color=c` en vez de `b.Color=c` en el método SetColor(). Cualquiera de los dos estaría bien, porque Go lo sabe interpretar. ¿Ahora crees que Go es mas fascinante?
|
||||
|
||||
También podría decir que deberíamos usar `(&bl[i]).SetColor(BLACK)` en `PaintItBlack` porque le pasamos un puntero a `SetColor`. Una vez más, cualquiera de los dos esta bien, porque Go sabe interpretarlo correctamente!
|
||||
También podría decir que deberíamos usar `(&bl[i]).SetColor(BLACK)` en `PaintItBlack` porque le pasamos un puntero a `SetColor`. Una vez más, cualquiera de los dos esta bien, porque ¡Go sabe interpretarlo correctamente!
|
||||
|
||||
### Herencia de métodos
|
||||
|
||||
@@ -298,10 +298,10 @@ Si queremos que Employee tenga su propio método llamado `SayHi`, podemos defini
|
||||
sam.SayHi()
|
||||
}
|
||||
```
|
||||
Ahora usted es capaz de escribir programas que utilicen el paradigma Orientado a Objetos, los métodos utilizan la regla de que los que tienen nombre que se inician con mayúsculas van a ser públicos o privados en caso contrario.
|
||||
Ahora eres capaz de escribir programas que utilicen el paradigma Orientado a Objetos, los métodos utilizan la regla de que los que tienen nombre que se inician con mayúsculas van a ser públicos o privados en caso contrario.
|
||||
|
||||
## Enlaces
|
||||
|
||||
- [Indice](preface.md)
|
||||
- [Índice](preface.md)
|
||||
- Sección anterior: [struct](02.4.md)
|
||||
- Siguiente sección: [interfaces](02.6.md)
|
||||
|
||||
Reference in New Issue
Block a user