Recently I have been working with Golang interface.
There are lots of confusions on how to use interface in Golang, particularly how to implement the methods in interface. Should I implement pointer receiver, or value receiver? How to mutate a struct that implements an interface? Can I implement both? Continue reading →
In go lang, functions are surprising quite flexible, they can be used as values and passed around, and anonymous functions with closure are supported. All of these are still on top of statically-typed nature of the language.
Go lang also has great packaging system, allowing reusable components to be packaged and easily integrated into other projects. It has OOP-styled types like struct and interface. It also supports encoding and decoding of JSON internally.
I have not had a chance to use the multi-threading and concurrency components of the language, and I shall wait to be delighted.