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
Convert Float32 to Float64 and Float64 to Float32
How to check if a map contains a key in Go?
Regular expression to extract text between square brackets
Subtract N number of Year, Month, Day, Hour, Minute, Second, Millisecond, Microsecond and Nanosecond to current date-time.
Regular expression for matching HH:MM time format in Golang
How to find out element position in slice?