Constructors in Golang
There are no default constructors in Go, but you can declare methods for any type. You could make it a habit to declare a method called "Init". Not sure if how this relates to best practices, but it helps keep names short without loosing clarity.
Example
package main
import "fmt"
type Employee struct {
Name string
Age int
}
func (e *Employee) Init(name string, age int) {
e.Name = name
e.Age = age
}
func info(name string, age int) *Employee {
e := new(Employee)
e.Name = name
e.Age = age
return e
}
func main() {
emp := new(Employee)
emp.Init("John Doe",25)
fmt.Printf("%s: %d\n", emp.Name, emp.Age)
empInfo := info("John Doe",25)
fmt.Printf("%v",empInfo)
}
Output
John Doe: 25
&{John Doe 25}
Most Helpful This Week
How to get the current date and time with timestamp in local and other timezones ?
Pass different types of arguments in variadic function
How can I convert a string variable into Boolean, Integer or Float type in Golang?
Golang Convert String into Snake Case
How to read input from console line?
How to get first and last element of slice in Golang?