golang面向对象简单运用
1|0应用一
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | package main import "fmt" /* 1.声明(定义)结构体,确定结构体名 2.编写结构体的字段 3.编写结构体的方法 案例 1.编写一个Student结构体,包含name、gender、age、id、score字段,分别为string、string、int、int、float64类型 2.结构体中声明一个say方法,返回string类型,方法返回信息中包含所有字段值。 3.在main方法中创建Student结构体实例(变量),并访问say方法,调用结果打印输出 */ type Student struct { name string gender string age int id int score float64 } func (student *Student) say() string { infoStr := fmt.Sprintf( "student的信息 name=[%v] gender=[%v] age=[%v] id=[%v] score=[%v]" , student.name, student.gender, student.age, student.id, student.score) return infoStr } func main() { var stu = Student{ name: "star" , gender: "boy" , age: 15, id: 1008611, score: 100, } infoStr := stu.say() fmt.Println(infoStr) } |
2|0应用二
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | package main import "fmt" //创建一个Box结构体,在其中声明三个字段表示一个立方体的长宽高,长宽高要从终端获取 //声明一个方法获取立方体的体积 //创建一个Box结构体变量,打印给定尺寸的立方体体积 type Box struct { length float64 width float64 hight float64 } func (box *Box) getVolumn() float64 { return box.length * box.hight * box.width } func main() { var box Box box.length = 1.1 box.width = 2.2 box.hight = 3.3 sum := box.getVolumn() fmt.Println( "体积为 " , sum) } |
3|0应用三
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | package main import "fmt" //一个景区根据游人的年龄收取不同价格的门票,比如年龄大于18,收费20元,其他情况门票免费 //编写一个Visitor结构体,根据年龄段决定能够购买的门票价格并输出 type Visitor struct { Age int Name string } func (visitor *Visitor) buy() { if visitor.Age >= 90 || visitor.Age <= 8 { fmt.Printf( "游客名字为 %v 年龄为 %v 年龄不符合,谢绝游玩\n" , visitor.Name, visitor.Age) } else if visitor.Age > 18 { fmt.Printf( "游客名字为 %v 年龄为 %v 收门票20元\n" , visitor.Name, visitor.Age) } else { fmt.Printf( "游客名字为 %v 年龄为 %v 免费游玩\n" , visitor.Name, visitor.Age) } } func main() { var visitor Visitor for { fmt.Println( "请输入姓名:" ) fmt.Scanln(&visitor.Name) if visitor.Name == "n" { fmt.Println( "退出程序" ) break } fmt.Println( "请输入年龄:" ) fmt.Scanln(&visitor.Age) visitor.buy() } } |
__EOF__

本文作者:StarGazer
本文链接:https://www.cnblogs.com/PatrickStarGazer/p/15982780.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/PatrickStarGazer/p/15982780.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!