Rumah >pembangunan bahagian belakang >Golang >Bagaimana Saya Memanggil Kaedah Tersuai daripada Templat HTML Go?

Bagaimana Saya Memanggil Kaedah Tersuai daripada Templat HTML Go?

Barbara Streisand
Barbara Streisandasal
2024-12-14 10:18:12201semak imbas

How Do I Call Custom Methods from Go HTML Templates?

Kaedah Memanggil daripada Templat Go

Dalam Go, anda boleh menentukan kaedah tersuai untuk jenis data. Bagaimanakah anda memanggil kaedah ini daripada templat HTML dalam Go?

Pertimbangkan contoh berikut:

type Person struct {
  Name string
}
func (p *Person) Label() string {
  return "This is " + p.Name
}

Untuk memanggil kaedah Label daripada templat, gunakan sintaks berikut:

{{ .Label }}

Perhatikan bahawa anda meninggalkan kurungan semasa memanggil kaedah.

Berikut ialah program Go lengkap yang menunjukkan penggunaan panggilan kaedah dalam templat:

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"))
}

Apabila anda menjalankan program ini, ia akan mengeluarkan:

This is Bob

Menurut dokumentasi templat Go, anda boleh memanggil mana-mana kaedah yang mengembalikan satu nilai (dari mana-mana jenis) atau dua nilai jika yang kedua adalah ralat jenis. Jika nilai kedua yang dikembalikan ialah ralat, fungsi Laksanakan akan mengembalikan ralat itu sebagai bukan sifar dan menghentikan pelaksanaan templat.

Atas ialah kandungan terperinci Bagaimana Saya Memanggil Kaedah Tersuai daripada Templat HTML 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