52 Method

Go does not have classes. However, you can define methods on struct types.
The method receiver appears in its own argument list between the func keyword and the method name.
53 Methods continued

In fact, you can define a method on any type you define in your package, not just structs.
You cannot define a method on a type from another package, or on a basic type.
54 Methods with pointer receiver

We just saw two Abs methods. One on the *Vertex pointer type and the other on the MyFloat value type.

There are two reasons to use a pointer receiver. First, to avoid copying the value on each method call (more efficient if the value type is a large struct).
Second, so that the method can modify the value that its receiver points to.
55 Interfaces

An interface type is defined by a set of methods.
A value of interface type can hold any value that implements those methods.
56 Interfaces are satisfied implicitly

A type implements an interface by implementing the methods.
There is no explicit declaration of intent.

Implicit interfaces decouple implementation packages from the packages that define the interfaces: neither depends on the other.
It also encourages the definition of precise interfaces, because you don't have to find every implementation and tag it with the new interface name.

Package io defines Reader and Writer; you don't have to.