package privatetype matrix struct {name string}// NewMatrix 强制使用工厂方法func NewMatrix(params string) *matrix {m := new(matrix)m.name = paramsreturn m}
调用包:
package mainimport ("fmt""github.com/private")func main() {//wrong := new(private.matrix) //cannot refer to unexported name private.matrix//fmt.Println(wrong)ma := private.NewMatrix("jack")fmt.Println(ma)}
这样就能禁止使用new函数,将结构体变为私有的了。
