[go] 템플릿 공용 함수 등록

이번 포스트에서는 Go 언어의 템플릿에 공용 함수를 등록하는 방법에 대해 알아보겠습니다.

템플릿 함수 등록

Gohtml/template 패키지를 이용하면, 템플릿의 함수를 등록하여 템플릿 내에서 사용할 수 있습니다. 함수를 등록하려면, 다음과 같이 funcMap을 사용합니다.

import (
	"html/template"
	"os"
)

func main() {
	tmpl := template.New("myTemplate").Funcs(template.FuncMap{
		"add": func(a, b int) int {
			return a + b
		},
	})
}

위의 예제에서 add 함수를 등록했습니다. 이제 템플릿 내에서 {{ add 1 2 }}와 같이 사용할 수 있습니다.

사용 예제

다음은 Go 프로그램에서 html/template 패키지를 사용한 사용 예제입니다.


package main

import (
	"html/template"
	"os"
)

func main() {
	tmpl := template.Must(template.New("myTemplate").Funcs(template.FuncMap{
		"add": func(a, b int) int {
			return a + b
		},
	}).Parse("Result: {{ add 1 2 }}"))

	err := tmpl.Execute(os.Stdout, nil)
	if err != nil {
		panic(err)
	}
}

위의 코드는 add 함수를 등록하고, 이를 템플릿 내에서 사용하여 실행 결과를 출력합니다.

마무리

이렇게 Go 언어의 템플릿에 공용 함수를 등록하는 방법을 알아보았습니다. 템플릿 함수를 등록하면, 템플릿을 보다 더 다양하게 사용할 수 있게 됩니다.

참고 문헌: The Go Programming Language Specification