Goで構造体型の初期化をコンストラクタっぽく書く時は、およそ次のルールを守れば良い。
- ”New型名”という名前にする。
- 戻り値はポインタ型にする。
(例)
func NewFile(fd int, name string) *File {
if fd < 0 {
return nil
}
f := File{fd, name, nil, 0}
return &f
}
参考:https://golang.org/doc/effective_go.html#composite_literals