go学习 day201 工厂模式

package main

import (
	"day201/model"
	"fmt"
)

func main() {

	// 创建一个student的实例
	//var stu  = model.Student{"小红",12}
	//fmt.Println(stu)

	// 定义 student 结构体是首字母小写,我们可以通过工厂模式来解决
	var stu = model.Newstudent("tom",45,20)
	fmt.Println(*stu)
	fmt.Println("name=",stu.Name,"score=",stu.Score)
	fmt.Println("age=",stu.Getage())

}

package model

// 定义一个结构体
type student struct {
	Name string
	Score float64
	age int
}

// 因为student结构体首字母是小写,因此是只能在model使用
// 我们通过工厂模式来解决
func Newstudent(n string,s float64,a int) *student {
	return &student{
		Name: n,
		Score: s,
		age: a,
	}
}

// 如果score字段首字母小写。则,在其他包不可以直接访问,我们可以提供一个方法
func (s *student) Getage() int {
	return s.age
}

posted @   六月OvO  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示