Tracks
/
Go
Go
/
Temario
/
Métodos
Mé

Métodos en Go

3 ejercicios

Acerca de Métodos

Un método es una función con un argumento especial llamado receptor. El receptor aparece en su propia lista de argumentos, entre la palabra clave func y el nombre del método.

func (receiver type) MethodName(parameters) (returnTypes) {

}

Solo puedes definir un método con un receptor cuyo tipo esté definido en el mismo paquete que el método.

type Person struct {
	Name string
}

func (p Person) Greetings() string {
	return fmt.Sprintf("Welcome %s!", p.Name)
}

s := Person{Name: "Bronson"}
fmt.Println(s.Greetings())
// Output: Welcome Bronson!

Hay dos tipos de receptores: los receptores de valor y los receptores de puntero.

Los métodos con un receptor de valor operan sobre una copia del valor que se les pasa, lo que significa que cualquier modificación que se haga al receptor dentro del método no es visible para quien llama al método.

Puedes declarar métodos con receptores de puntero para modificar el valor al que apunta el receptor. Esas modificaciones también son visibles para quien llama al método.

type rect struct {
	width, height int
}

func (r *rect) squareIt() {
	r.height = r.width
}

r := rect{width: 10, height: 20}
fmt.Printf("Width: %d, Height: %d\n", r.width, r.height)
// Output: Width: 10, Height: 20

r.squareIt()
fmt.Printf("Width: %d, Height: %d\n", r.width, r.height)
// Output: Width: 10, Height: 10

Puedes encontrar varios ejemplos aquí. También puedes revisar este breve tutorial sobre métodos.

Recuerda: un método no es más que una función con un argumento receptor.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva

Aprende Métodos

La práctica está bloqueada

Desbloquea 2 ejercicios más para practicar Métodos