> 백엔드 개발 > Golang > HTML 템플릿에서 Go 메소드를 호출하는 방법은 무엇입니까?

HTML 템플릿에서 Go 메소드를 호출하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-17 10:02:25
원래의
843명이 탐색했습니다.

How to Call Go Methods from HTML Templates?

Go 템플릿에서 메소드 호출

Go에서는 사용자 정의 유형에 대한 메소드를 정의할 수 있으므로 해당 유형에 대해 더 많은 작업을 수행할 수 있습니다. 조직적인 방식. HTML 템플릿으로 작업할 때 템플릿 자체 내에서 이러한 메서드에 액세스하는 것이 유용한 경우가 많습니다.

질문:

다음을 고려하세요.

type Person struct {
  Name string
}

func (p *Person) Label() string {
  return "This is " + p.Name
}
로그인 후 복사

HTML 내에서 Label() 메서드를 어떻게 활용합니까? 템플릿?

답변:

Go 템플릿에서 메서드를 호출하려면 괄호를 생략하면 됩니다. 이 경우 템플릿은 다음과 같습니다.

{{ .Label }}
로그인 후 복사

이것은 Label() 메서드를 호출하고 해당 반환 값을 템플릿에 삽입합니다.

전체 예는 다음과 같습니다.

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"))
}
로그인 후 복사

추가 참고 사항:

에 따르면 Go 문서에서는 모든 유형의 값 하나 또는 두 값(두 번째 값은 유형 오류임)을 반환하는 메소드를 템플릿에서 호출할 수 있습니다.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿