문제:
In Go HTML 템플릿에서 다음과 같은 계산을 수행하려고 합니다. 템플릿 내의 {{ $length -1 }}가 작동하지 않습니다. 이 기능을 어떻게 구현합니까?
답변:
안타깝게도 HTML 템플릿 내에서 직접 계산을 수행할 수 없습니다. 이는 복잡한 로직을 템플릿에서 분리한다는 근본적인 디자인 철학 때문입니다.
해결책:
대신 다음과 같은 대체 접근 방식을 고려하세요.
1. 계산된 결과를 매개변수로 전달:
선호되는 방법은 Go 코드에서 원하는 값을 계산하여 이를 템플릿 매개변수로 전달하는 것입니다.
func main() { length := len(myMap) t := template.Must(template.New("index").Parse(`<p>The last index of this map is: {{ .LastIndex }}</p>`)) t.Execute(os.Stdout, map[string]interface{}{"LastIndex": length - 1}) }
2. 사용자 정의 함수 등록:
또한 사용자 정의 함수를 등록하고 템플릿 내에서 호출할 수도 있습니다. 이러한 함수는 계산을 수행하고 값을 반환할 수 있습니다.
func RegisterCalcFunc(t *template.Template) { t.Funcs["calcIndex"] = func(length int) int { return length - 1 } } func main() { RegisterCalcFunc(t) t := template.Must(template.New("index").Parse(`<p>The last index of this map is: {{ calcIndex .Length }}</p>`)) t.Execute(os.Stdout, map[string]interface{}{"Length": len(myMap)}) }
위 내용은 Go HTML 템플릿에서 계산을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!