freeCodeCamp/guide/spanish/go/methods/index.md

72 lines
1.3 KiB
Markdown
Raw Normal View History

2018-10-12 19:37:13 +00:00
---
title: Go Methods
localeTitle: Ir metodos
--- ## Ir metodos
Los tipos de golang pueden tener métodos. Un método es una función con un argumento especial, el _receptor_ .
```go
type Rectangle struct {
height, width int64
}
func (r Receiver) getArea() int64 {
return r.height * r.height
}
r := Rectangle{10, 20}
r.getArea() // 200
```
Aquí, el tipo `Rectangle` tiene un método llamado `getArea` que devuelve el área del rectángulo. El receptor aquí es `r` .
Este código es equivalente a:
```go
type Rectangle struct {
height, width int64
}
func getArea(r Receiver) int 64{
return r.height * r.height
}
r := Rectangle{10, 20}
getArea(r) // 200
```
Ahora el método getArea recibe `r` como un argumento, en lugar de un receptor. La funcionalidad es equivalente.
### Puntero receptor
Puede pasar un puntero como receptor:
```go
type MyInt int64
func (m *MyInt) setToZero() {
*m = MyInt(0)
}
m := MyInt(10)
m.setToZero() // m == 0
```
### Metodos de extension
Si desea crear un método en un tipo definido en otro paquete, por ejemplo, `int` puede usar un envoltorio simple como este:
```go
type MyInt int64
func (m MyInt) add10() int64 {
return m + 10
}
m := MyInt(10)
m.add10() // 20
```
#### Más información:
https://tour.golang.org/methods/1