Loading

Golang 不能访问的类型变量如何解决

通过一个工厂模式实现一个不能访问的类型变量

package model
//通过一个工厂模式去实现一个只能在本包访问的类型变量
type student struct {
    Name string
    age int
}

func GetStudent(n string , m int) *student{
    return &student{
        Name n,
        age m
    }
}

// 因为age也是小写的不能直接被访问,需要单独使用工厂
func(s *student)GetAge() int{
    return s.age
}

上面的代码是其它包通过调用该代码所在包的GetStudent的方法获取student的实例,例如:

package main
import(
    "fmt"
    "model"
)

func main(){
    var student = model.GetStudent("carver",18)
    fmt.Println("student信息:",*student,"姓名:",student.Name,"年龄:",student.GetAge)
}

 

posted @ 2024-10-07 18:27  Carver大脸猫  阅读(4)  评论(0)    收藏  举报