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 テンプレートのドキュメントによると、任意のメソッド呼び出しを呼び出すことができます。このメソッドは、(任意の型の) 1 つの値を返すか、2 番目の値がエラー型の場合は 2 つの値を返します。 2 番目の戻り値がエラーの場合、Execute 関数はそのエラーを非 nil として返し、テンプレートの実行を中止します。
以上がGo HTML テンプレートからカスタム メソッドを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。