1. 代码结构

2. struct_demo.go
| package struct_demo |
| |
| import "fmt" |
| type Power struct { |
| Atk int |
| Def int |
| } |
| |
| type Xishu struct { |
| ID int |
| Name string |
| Age int |
| Position string |
| Power |
| } |
| |
| type Dongwu struct { |
| ID int |
| Name string |
| Age int |
| Position string |
| Power |
| } |
| |
| |
| func (xishu *Xishu)Infor01() string { |
| fmt.Println("蜀将个人信息") |
| fmt.Println("姓名: ",xishu.Name) |
| fmt.Println("职务: ",xishu.Position) |
| return "蜀将个人信息" |
| } |
| |
| func (xishu *Xishu)Infor02() string { |
| fmt.Println("蜀将战力") |
| fmt.Println("攻击力: ",xishu.Atk) |
| fmt.Println("防御力: ",xishu.Def) |
| return "蜀将战力" |
| } |
| |
| |
| |
| func (dongwu *Dongwu)Infor01() string { |
| fmt.Println("吴将个人信息") |
| fmt.Println("姓名: ",dongwu.Name) |
| fmt.Println("职务: ",dongwu.Position) |
| return "吴将个人信息" |
| } |
| |
| |
| func (dongwu *Dongwu)Infor02() string { |
| fmt.Println("吴将战力") |
| fmt.Println("攻击力: ",dongwu.Atk) |
| fmt.Println("防御力: ",dongwu.Def) |
| return "武将战力" |
| } |
3. interface_demo
| package interface_demo |
| |
| |
| type Behavior interface { |
| Infor01() string |
| Infor02() string |
| } |
4. main.go
| package main |
| |
| import ( |
| "814/interface_demo" |
| "814/struct_demo" |
| "fmt" |
| ) |
| func main () { |
| |
| liubei := new(struct_demo.Xishu) |
| liubei.ID = 0 |
| liubei.Name = "刘备" |
| liubei.Age = 28 |
| liubei.Position = "主公" |
| liubei.Atk = 200 |
| liubei.Def = 300 |
| |
| |
| zhouyu := new(struct_demo.Dongwu) |
| zhouyu.ID = 0 |
| zhouyu.Name = "周瑜" |
| zhouyu.Age = 20 |
| zhouyu.Position = "大都督" |
| zhouyu.Atk = 400 |
| zhouyu.Def = 300 |
| |
| |
| action(liubei) |
| action(zhouyu) |
| } |
| |
| |
| func action( b interface_demo.Behavior) string { |
| fmt.Println("#################") |
| b.Infor01() |
| fmt.Println("-------------------") |
| b.Infor02() |
| return "" |
| } |
5. 运行结果
| # |
| 蜀将个人信息 |
| 姓名: 刘备 |
| 职务: 主公 |
| ------------------- |
| 蜀将战力 |
| 攻击力: 200 |
| 防御力: 300 |
| # |
| 吴将个人信息 |
| 姓名: 周瑜 |
| 职务: 大都督 |
| ------------------- |
| 吴将战力 |
| 攻击力: 400 |
| 防御力: 300 |
| |
| Process finished with the exit code 0 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律