網頁

2024/2/6

Golang template range取得parent pipeline的值

Go template在range中取得parent pipeline的值的方式如下。


使用$可取得傳入Template.Execute的原資料。

例如下面使用{{$bullet}}取得range外面的bullet變數的值。

main.go

package main

import (
    "html/template"
    "os"
)

type Employee struct {
    Name string
    Age  int
}

func main() {
    text := `{{$bullet := "*"}}Employees:
{{range .}}    {{$bullet} }Name:{{.Name}}, Age:{{.Age}}
{{end}}`
    t := template.Must(template.New("demo").Parse(text))

    data := []Employee{
        {"John", 33},
        {"Mary", 28},
    }
    err := t.Execute(os.Stdout, data)
    if err != nil {
        panic(err)
    }
}


測試

執行程式輸出結果如下:

Employees:
    * Name:John, Age:33
    * Name:Mary, Age:28


沒有留言:

張貼留言