HTML 템플릿에서 Go 메소드 액세스
Go에서 템플릿은 HTML 콘텐츠를 동적으로 생성하는 다양한 방법입니다. 그러나 템플릿 내에서 메서드를 호출하면 때로 문제가 발생할 수 있습니다.
문제:
다음 Go 구조체를 고려하세요.
type Person struct { Name string } func (p *Person) Label() string { return "This is " + p.Name }
어떻게 할 수 있나요? 이 메소드를 HTML 템플릿에서 액세스할 수 있나요? 템플릿에서 다음과 유사한 구문을 사용하고 싶습니다.
{{ .Label() }}
해결책:
Go 템플릿에서 메서드를 호출하려면 괄호를 생략하면 됩니다. :
{{ .Label }}
다음 Go 코드는 다음을 보여줍니다. this:
package main import ( "html/template" "log" "os" ) type Person string func (p Person) Label() string { return "This is " + string(p) } func main() { tmpl, err := template.New("").Parse(`{{.Label}}`) if err != nil { log.Fatalf("Parse: %v", err) } tmpl.Execute(os.Stdout, Person("Bob")) }
출력:
This is Bob
문서에는 두 번째 값이 오류 유형인 경우 하나의 값 또는 두 개의 값을 반환하는 메서드를 호출할 수 있다고 명시되어 있습니다. 후자의 경우 nil이 아니면 오류를 반환하고 템플릿 실행을 중단합니다.
위 내용은 HTML 템플릿 내에서 Go 메소드를 호출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!