>백엔드 개발 >Golang >Go HTML 템플릿에서 사용자 정의 메서드를 어떻게 호출합니까?

Go HTML 템플릿에서 사용자 정의 메서드를 어떻게 호출합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-14 10:18:12194검색

How Do I Call Custom Methods from Go HTML Templates?

Go 템플릿에서 메소드 호출

Go에서는 데이터 유형에 대한 사용자 정의 메소드를 정의할 수 있습니다. Go의 HTML 템플릿에서 이러한 메서드를 어떻게 호출합니까?

다음 예를 고려하세요.

type Person struct {
  Name string
}
func (p *Person) Label() string {
  return "This is " + p.Name
}

템플릿에서 Label 메서드를 호출하려면 다음 구문을 사용하세요.

{{ .Label }}

메소드를 호출할 때 괄호를 생략한다는 점에 유의하세요.

다음은 완전한 Go 프로그램입니다. 템플릿에서 메서드 호출의 사용법을 보여줍니다.

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

Go 템플릿 문서에 따르면 다음과 같은 모든 메서드를 호출할 수 있습니다. 두 번째 값이 오류 유형인 경우 하나의 값(모든 유형)을 반환하거나 두 개의 값을 반환합니다. 두 번째 반환 값이 오류인 경우 Execute 함수는 해당 오류를 nil이 아닌 것으로 반환하고 템플릿 실행을 중단합니다.

위 내용은 Go HTML 템플릿에서 사용자 정의 메서드를 어떻게 호출합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.