student.go
package model type student struct { Name string age int } // 结构体student 首字母小写,因此只能在 model 内部使用 // 如果想外部调用,我们可以通过工厂模式解决 func NewStudent(name string, age int) *student { return &student{ Name: name, age: age, } } // 如果 score 字段首字母小写,则其他包不可以调用,我们可以提供一个方法来调用 func (s *student) GetAge() int { return s.age }
main.go
package main import ( "fmt" "tianqi-api/tests/study/factory/model" ) func main() { var stu = model.NewStudent("gopher.cc", 10) fmt.Println("name =", stu.Name, " age =", stu.GetAge()) }