package private
type matrix struct {
name string
}
// NewMatrix 强制使用工厂方法
func NewMatrix(params string) *matrix {
m := new(matrix)
m.name = params
return m
}
调用包:
package main
import (
"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函数,将结构体变为私有的了。