Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah saya boleh Mengira Nilai dalam Templat HTML Menggunakan Go?

Bagaimanakah saya boleh Mengira Nilai dalam Templat HTML Menggunakan Go?

Linda Hamilton
Linda Hamiltonasal
2024-12-03 09:10:11972semak imbas

How can I Calculate Values in HTML Templates Using Go?

Mengira Nilai dalam Templat HTML dengan Go

Apabila bekerja dengan templat Go, selalunya perlu melakukan pengiraan dalam templat. Satu tugas biasa ialah mengira indeks item terakhir dalam peta. Walaupun contoh yang diberikan menggunakan {{ $length -1 }} tidak betul, terdapat penyelesaian alternatif.

Penghadan Templat

Adalah penting untuk diingat bahawa templat Go bukan direka untuk logik yang kompleks. Pengiraan templat hendaklah dipastikan mudah dan sebarang operasi yang rumit hendaklah dikendalikan di luar templat.

Melulus Nilai Dikira

Pendekatan pilihan adalah dengan pra-pengiraan nilai dan luluskannya sebagai parameter kepada templat. Ini memastikan pemisahan logik dan pembentangan.

Mendaftarkan Fungsi Tersuai

Pilihan lain ialah mendaftarkan fungsi tersuai yang menerima parameter templat dan melakukan pengiraan. Fungsi ini boleh dipanggil dalam templat, menghantar nilai kepada mereka dan mengembalikan hasil yang dikira.

Contoh

package template

import (
    "html/template"
)

// Register a custom function to calculate the last index.
func LastIndex(m map[string]interface{}) int {
    return len(m) - 1
}

func main() {
    m := map[string]interface{}{"key1": "value1", "key2": "value2"}

    // Parse a template and register the custom function.
    tmpl, err := template.New("").Funcs(template.FuncMap{"LastIndex": LastIndex}).Parse("{{ LastIndex . }}")
    if err != nil {
        // Handle error.
    }

    // Execute the template.
    if err = tmpl.Execute(m, nil); err != nil {
        // Handle error
    }
}

Dalam contoh ini, fungsi LastIndex didaftarkan dengan templat. Dalam HTML, fungsi tersuai boleh digunakan seperti ini:

<p>The last index of this map is: {{ LastIndex . }}</p>

Sumber Tambahan

  • [Pergi Templat (dan menghantar fungsi ke templat)](https://groups.google.com/g/golang-nuts/c/ZmW3hDtE07Q/m/T0ftq_MKD6kJ)
  • [Bagaimana saya boleh mengakses medan objek mengikut pembolehubah dalam templat?](https://stackoverflow.com/questions/33503055/how-do-i-access-object-field-by-variable-in-template)
  • [Iterate Go map get index]( https://stackoverflow.com/questions/38154785/iterate-go-map-get-index)

Atas ialah kandungan terperinci Bagaimanakah saya boleh Mengira Nilai dalam Templat HTML Menggunakan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn