一个简略的命令行账本,用于练习 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()}