다음을 사용하여 지도에 저장된 구조체의 필드에 액세스하려고 합니다. Go의 html/template 패키지.
기본 Go 템플릿은 구조체의 내보내지 않은 필드에 대한 액세스를 허용하지 않습니다. 이를 활성화하려면 이름의 첫 글자를 대문자로 만들어 필드를 내보내야 합니다.
내보낸 필드로 구조체 정의:
<code class="go">type Task struct { cmd string args []string Desc string // Note the capital "D" }</code>
내보낸 구조로 지도 초기화:
<code class="go">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", }, }</code>
템플릿 구문 분석 및 실행:
<code class="go">func listHandle(w http.ResponseWriter, r *http.Request) { t, _ := template.ParseFiles("index.tmpl") t.Execute(w, taskMap) }</code>
템플릿 파일:
<code class="go"><html> {{range $key, $value := .}} <li>Task Name: {{$key}}</li> <li>Task Value: {{$value}}</li> <li>Task description: {{$value.Desc}}</li> {{end}} </html></code>
이제 템플릿은 맵에 있는 작업 구조의 내보낸 필드에 액세스할 수 있습니다.
<code class="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></code>
위 내용은 필드를 내보내지 않은 경우 Go에서 HTML 템플릿의 구조체 필드에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!