一个简略的命令行账本,用于练习 GO 语法应用,话不多说,源码贴上
package mainimport "fmt"// 定义存储生产信息的总汇合var sumMessage []count//定义总金额var sumMoney float32func main() { fmt.Println("=============家庭收支记账软件==============") fmt.Print("1 收支明细\t") fmt.Print("2 注销支出\t") fmt.Print("3 注销收入\t") fmt.Println("4 退出") var choose int //输出选项 fmt.Scanln(&choose) if choose == 1 { detail() } else if choose == 2 { add() } else if choose == 3 { sub() } else if choose == 4 { return }}// 定义每笔账单,存储生产金额和生产信息type count struct { txt string //账单信息 money float32 //账单金额}// 账单详情func detail() { var choose int if len(sumMessage) < 1 { fmt.Println("没有账单信息") } else { fmt.Println("===========生产明细===============") for _, sm := range sumMessage { fmt.Print(sm.txt) fmt.Print("\t\t\t") fmt.Println(sm.money) } fmt.Println("————————————————结算——————————————") if sumMoney < 0 { fmt.Println("负债为:", sumMoney) } else { fmt.Println("余额为:", sumMoney) } } fmt.Println("==================================") fmt.Println("输出 1 进入菜单\t输出 2 退出零碎") fmt.Scanln(&choose) if choose == 1 { main() } else { return }}// 支出func add() { var cadd count fmt.Print("输出支出金额:") fmt.Scanln(&cadd.money) sumMoney += cadd.money //将支出金额加到总金额 fmt.Print("输出支出起源: ") fmt.Scanln(&cadd.txt) sumMessage = append(sumMessage, cadd) main()}// 生产func sub() { var csub count fmt.Print("输出生产金额:") fmt.Scanln(&csub.money) sumMoney -= csub.money // 将生产金额从总金额中减去 fmt.Print("输出生产去向: ") fmt.Scanln(&csub.txt) sumMessage = append(sumMessage, csub) main()}