Go (Golang)
Last updated
Last updated
Go does not have classes.
In general, all methods on a given type should have either value or pointer receivers, but not a mixture of both.
A type implements an interface by implementing its methods. There is no explicit declaration of intent, no "implements" keyword. https://go.dev/tour/methods/10
Goroutine is more or less similar to Java's process fork. The goroutine will also be stopped if the main process is stopped.
Communications can be done between goroutines with channel.
A method with pointer receiver behaves differently:
The vertex's value will change on the struct. This is similar to having func Scale(v *Vertex, f float64)
which will use the same Vertex instead of copying the Vertex.
It might not be a good idea to use closures a lot, this is because closures do have a side-effect.
It is still okay to use it sparingly, one of the use-case where I might use it is for memoization:
If a struct's field do not have a name, it is a struct embedding.