Go doesn't support constructors, but constructor-like factory functions are easy to implement:
To prevent users from instantiating uninitialized objects, the struct can be made private.
Go aims to prevent unnecessary typing. Oftentimes Go code is shorter and easier to read than object-oriented languages. Compare the use of factory functions and initializers in Go to the use of constructors in Java:
Additionally, Go "constructors" can be written succinctly using initializers within a factory function: