golang简单的记账本
时间: 2023-09-21 15:02:48 浏览: 37
以下是一个简单的记账本示例,使用Go语言编写:
```go
package main
import (
"fmt"
)
type Transaction struct {
Description string
Amount float64
}
type Account struct {
Name string
Transactions []Transaction
Balance float64
}
func (a *Account) AddTransaction(t Transaction) {
a.Transactions = append(a.Transactions, t)
a.Balance += t.Amount
}
func (a Account) PrintStatement() {
fmt.Printf("Statement for account %s:\n", a.Name)
fmt.Println("-----------------------------")
for _, t := range a.Transactions {
fmt.Printf("%s: %.2f\n", t.Description, t.Amount)
}
fmt.Println("-----------------------------")
fmt.Printf("Balance: %.2f\n", a.Balance)
}
func main() {
myAccount := Account{Name: "John Doe", Balance: 0}
myAccount.AddTransaction(Transaction{"Salary", 1000})
myAccount.AddTransaction(Transaction{"Rent", -500})
myAccount.AddTransaction(Transaction{"Groceries", -200})
myAccount.PrintStatement()
}
```
在这个示例中,我们定义了两个结构体:`Transaction` 和 `Account`。`Transaction` 结构体包含了交易的描述和金额,而 `Account` 结构体包含了账户名、交易记录和当前余额。我们还定义了两个方法来添加交易和打印账单,其中 `AddTransaction` 方法会更新余额。
在主函数中,我们创建了一个新的账户,并添加了三笔交易:收入、租金和杂货费。最后,我们打印了账户的账单。