- 定义
package model
type Student struct{
Name string
Score float64
}
// 当结构体为小写时
type person struct{
Name string
score float64
}
func NewPerson(n string,s float64) *person{
return &person{
Name : n,
score:s,
}
}
func (p *person) GetScore() float64{ // 封装特性。。。
return (*p).score;
}
- 测试
package main
import(
"fmt"
"go_code/day0602/model"
)
func main(){
// var stu = model.Student{ // model包中的结构体
// Name:"li1",
// Score:79.2,
// }
// fmt.Println(stu)
// var per = model.person{ // 小写时不能引用,解决方法:工厂模式
// Name:"li2",
// Score:80.2,
// }
// fmt.Println(per)
// 调方法(工厂模式)
var person = model.NewPerson("tom",78.9)
fmt.Println(*person)
fmt.Println(person.GetScore()) // 调用person结构体指针类型的方法
}