Go HTML テンプレートで計算を実行するにはどうすればよいですか?

DDD
リリース: 2024-11-14 22:13:02
オリジナル
577 人が閲覧しました

How to Perform Calculations in Go HTML Templates?

HTML テンプレート内で計算を実行する方法?

問題:

Go HTML テンプレートで、次のような計算を実行しようとしています。テンプレート内の {{ $length -1 }} は機能しません。この機能はどのように実現できますか?

答え:

残念ながら、HTML テンプレート内で計算を直接実行することはできません。これは、複雑なロジックをテンプレートから分離するという基本的な設計哲学によるものです。

解決策:

代わりに、次の代替アプローチを検討してください:

1.計算結果をパラメータとして渡す:

推奨される方法は、Go コードで必要な値を計算し、それをテンプレート パラメータとして渡すことです。

func main() {
    length := len(myMap)
    t := template.Must(template.New("index").Parse(`<p>The last index of this map is: {{ .LastIndex }}</p>`))
    t.Execute(os.Stdout, map[string]interface{}{"LastIndex": length - 1})
}
ログイン後にコピー

2.カスタム関数の登録:

カスタム関数を登録し、テンプレート内で呼び出すこともできます。これらの関数は計算を実行し、値を返すことができます。

func RegisterCalcFunc(t *template.Template) {
    t.Funcs["calcIndex"] = func(length int) int { return length - 1 }
}

func main() {
    RegisterCalcFunc(t)
    t := template.Must(template.New("index").Parse(`<p>The last index of this map is: {{ calcIndex .Length }}</p>`))
    t.Execute(os.Stdout, map[string]interface{}{"Length": len(myMap)})
}
ログイン後にコピー

以上がGo HTML テンプレートで計算を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート