From afa51d915e7f595b96d9a2c9bc27d72a0c8af130 Mon Sep 17 00:00:00 2001 From: bel Date: Sun, 15 Oct 2023 12:01:35 -0600 Subject: [PATCH] implement transaction.go:Transactions:expenses to return a new slice of only the expense transactions --- digits-work-sample-go.d/transaction.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/digits-work-sample-go.d/transaction.go b/digits-work-sample-go.d/transaction.go index c78da9f..de3ab88 100644 --- a/digits-work-sample-go.d/transaction.go +++ b/digits-work-sample-go.d/transaction.go @@ -50,6 +50,16 @@ func (trn Transaction) isRefund() bool { // Transactions represents a list of Transaction type Transactions []Transaction +func (trns Transactions) expenses() Transactions { + result := make(Transactions, 0, len(trns)) + for i := range trns { + if !trns[i].isRefund() { + result = append(result, trns[i]) + } + } + return result +} + // Sum adds all transactions together. func (trns Transactions) Sum() Amount { result := Amount(0.0)