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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

獲取 Golang 模板中結(jié)構(gòu)中數(shù)組的最后一個(gè)元素

獲取 Golang 模板中結(jié)構(gòu)中數(shù)組的最后一個(gè)元素

Go
桃花長(zhǎng)相依 2022-09-05 10:43:40
我正在 Go 中為學(xué)校項(xiàng)目構(gòu)建一個(gè)簡(jiǎn)單的論壇,并且我正在將數(shù)據(jù)結(jié)構(gòu)傳遞給模板以顯示子論壇中的所有帖子。我傳遞給模板的數(shù)據(jù)是這樣的:type Data struct {   ID    int       // ID of the subforum   User  User      // logged-in user   Posts []Post    // all the posts of the subforum}數(shù)據(jù)結(jié)構(gòu)中的 Post 結(jié)構(gòu)如下所示:type Post struct {    ID         int    Title      string    Content    string    Date       time.Time    [...]    Author     User    Comments   []Comment}注釋結(jié)構(gòu)類似于 Post 結(jié)構(gòu)。當(dāng)我顯示所有帖子的列表時(shí),我還想顯示回復(fù)的數(shù)量和上次回復(fù)的日期/時(shí)間。在我的HTML模板中,我可以得到這樣的回復(fù)數(shù)量:{{range .Posts}}    <p>Replies: {{ len .Comments }}</p>{{ end }}...但我似乎無(wú)法弄清楚注釋數(shù)組中最后一個(gè)元素的日期。我知道你可以得到第一個(gè)元素與索引關(guān)鍵字和值'0',但我不能使用(len .注釋 -1) 在模板中獲取最后一個(gè)元素,因?yàn)?'-' 是禁止的字符。我可能會(huì)創(chuàng)建第二個(gè)函數(shù)來使我的注釋按SQLite數(shù)據(jù)庫(kù)的降序排序,但我想知道是否有一種簡(jiǎn)單的方法來處理Go模板中的索引。
查看完整描述

2 回答

?
阿波羅的戰(zhàn)車

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊

使用 Go 模板沒有一種干凈的方法來執(zhí)行此操作,但是這是一種解決方法。更簡(jiǎn)單的解決方法是在將結(jié)構(gòu)傳遞給模板生成器之前將最后一項(xiàng)添加到結(jié)構(gòu)中。您正在做的是將復(fù)雜的邏輯移出模板(模板不是為執(zhí)行此操作而設(shè)計(jì)的)并移動(dòng)到Go代碼中。


type Post struct {

    ....

    Comments   []Comment

    LastComment Comment

}

然后在您的模板中,只需執(zhí)行


{{ .LastComment }}


查看完整回答
反對(duì) 回復(fù) 2022-09-05
?
開心每一天1111

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊

您可以使用模板中的自定義函數(shù)來獲取最后一個(gè)元素:


fmap := template.FuncMap{

    "lastElem": func(comments []Comment) Comment { 

        return comments[len(comments)-1]

    },

}


tmpl, err := template.New("tmpl").Funcs(fmap).Parse(tpl)

然后在模板中將其用作:


{{range .Posts}}


    <p>Replies: {{ lastElem .Comments }}</p>


{{ end }}


查看完整回答
反對(duì) 回復(fù) 2022-09-05
  • 2 回答
  • 0 關(guān)注
  • 1012 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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