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.
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)
}
C:\golang\codes>go run example23.go
John Doe: 25
&{John Doe 25}
C:\golang\codes>