第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有更好的方法來迭代結(jié)構(gòu)的字段?

有沒有更好的方法來迭代結(jié)構(gòu)的字段?

Go
溫溫醬 2022-07-25 12:04:25
我從 JSON 文件中填充了這兩個結(jié)構(gòu):type transaction struct {    Datetime time.Time       `json:"datetime"`    Desc     string          `json:"desc"`    Cash     decimal.Decimal `json:"cash"`}type branch struct {    BranchName    string        `json:"branch-name"`    Currency      string        `json:"currency"`    Deposits      []transaction `json:"deposits"`    Withdrawals   []transaction `json:"withdrawals"`    Fees          []transaction `json:"fees"`}我需要實現(xiàn)一個方法來返回 和 的所有字段的總和,Cash但Deposits我不確定如何將它們抽象為“帶有字段的事物切片”。我當(dāng)前的實現(xiàn)只是重復(fù)相同的代碼三遍:WithdrawalsFeesCashfunc (b branch) getCash(datetime time.Time) decimal.Decimal {    cash := decimal.NewFromFloat(0)    for _, deposit := range b.Deposits {        if deposit.Datetime.Before(datetime) {            cash = cash.Add(deposit.Cash)        }    }    for _, withdrawal := range b.Withdrawals {        if withdrawal.Datetime.Before(datetime) {            cash = cash.Add(withdrawal.Cash)        }    }    for _, fee := range b.Fees {        if fee.Datetime.Before(datetime) {            cash = cash.Add(fee.Cash)        }    }    return cash}有一個更好的方法嗎?
查看完整描述

2 回答

?
慕田峪4524236

TA貢獻1875條經(jīng)驗 獲得超5個贊

通過循環(huán)切片切片來消除重復(fù)代碼:


for _, transactions := range [][]transaction{b.Deposits, b. Withdrawals, b.Fees} {

    for _, transaction := range transactions {

        if transaction.Datetime.Before(datetime) {

            cash = cash.Add(transaction.Cash)

        }

    }

}


查看完整回答
反對 回復(fù) 2022-07-25
?
白衣非少年

TA貢獻1155條經(jīng)驗 獲得超0個贊

您可以附加到一個數(shù)組并對其進行迭代:


func (b branch) getCash(datetime time.Time) decimal.Decimal {

    cash := decimal.NewFromFloat(0)

    arr := append(b.Deposits, b.Fees...)

    arr = append(arr, b.Withdrawals...)

    

    for _, a := range arr {

        if a.Datetime.Before(datetime) {

            cash = cash.Add(a.Cash)

        }

    }

    return cash

}


查看完整回答
反對 回復(fù) 2022-07-25
  • 2 回答
  • 0 關(guān)注
  • 102 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號