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

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

如何在 Go 的 html/template 中獲取地圖元素的結構字段?

如何在 Go 的 html/template 中獲取地圖元素的結構字段?

Go
慕運維8079593 2021-09-10 21:04:12
我有一個結構Task:type Task struct {   cmd string   args []string   desc string}我初始化了一個映射,它將上述Task結構作為值和 astring作為鍵(任務名稱)var taskMap = map[string]Task{    "find": Task{        cmd: "find",        args: []string{"/tmp/"},        desc: "find files in /tmp dir",    },    "grep": Task{        cmd: "grep",        args:[]string{"foo","/tmp/*", "-R"},        desc: "grep files match having foo",    },}我想html/template僅使用上述內容來解析 html 頁面taskMap。func listHandle(w http.ResponseWriter, r *http.Request){    t, _ := template.ParseFiles("index.tmpl")    t.Execute(w, taskMap)}這是index.tmpl:<html>{{range $key, $value := .}}   <li>Task Name:        {{$key}}</li>   <li>Task Value:       {{$value}}</li>   <li>Task description: {{$value.desc}}</li>{{end}}</html>我可以成功打印$key并value打印,但是當涉及到Task使用{{$value.desc}}它的領域時,它就行不通了。在這種情況下,我怎樣才能得到desc每個task?
查看完整描述

1 回答

?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

注意:您可以在Go Playground 中嘗試/檢查您的工作修改后的代碼。


如果您希望template包能夠訪問這些字段,則必須導出這些字段。您可以通過以大寫字母開頭來導出字段:


type Task struct {

   cmd string

   args []string

   Desc string

}

請注意,我只Desc在此處更改,您必須將要在模板中引用的任何其他字段大寫。


導出后,Desc當然將所有引用更改為大寫:


var taskMap = map[string]Task{

    "find": Task{

        cmd: "find",

        args: []string{"/tmp/"},

        Desc: "find files in /tmp dir",

    },

    "grep": Task{

        cmd: "grep",

        args:[]string{"foo","/tmp/*", "-R"},

        Desc: "grep files match having foo",

    },

}

而且在模板中:


<html>

{{range $key, $value := .}}

   <li>Task Name:        {{$key}}</li>

   <li>Task Value:       {{$value}}</li>

   <li>Task description: {{$value.Desc}}</li>

{{end}}

</html>

輸出:


<html>


<li>Task Name:        find</li>

<li>Task Value:       {find [/tmp/] find files in /tmp dir}</li>

<li>Task description: find files in /tmp dir</li>


<li>Task Name:        grep</li>

<li>Task Value:       {grep [foo /tmp/* -R] grep files match having foo}</li>

<li>Task description: grep files match having foo</li>


</html>


查看完整回答
反對 回復 2021-09-10
  • 1 回答
  • 0 關注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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