AdSense

網頁

2023/10/11

Golang template 模板簡單範例

Golang標準函式庫的模板(text/template)可以根據資料來將模板中的內容動態替換成不同的內容。


範例環境:

  • Go 1.19

模板文字內容中要動態變更的部分用{{...}}符號表示,而.符號表示套用的資料物件或方法,又稱為pipeline。

使用template.New建立模板物件並賦予名稱,然後呼叫template.Template.Parse將輸入的模板文字解析為模板主體。template.Template.Must是用來確保Template是解析正確的,否則會panic。

呼叫template.Template.Execute來把資料物件套用到模板中,並將結果透過Writer輸出。

例如下面會將模板demo的內容"hello {{.}}"中的{{.}}替換成data資料物件的內容,即"hello",然後輸出到標準輸出。

main.go

package main

import (
    "os"
    "text/template"
)

func main() {
    text := "hello {{.}}"                                // 模板內容。{{.}}最終會以資料物件替代
    t := template.Must(template.New("demo").Parse(text)) // 解析模板內容來建立名稱為'demo'的模板

    data := "world"
    err := t.Execute(os.Stdout, data) // 將資料物件套用在模板,並將結果輸出到標準輸出
    if err != nil {
        panic(err)
    }
}

github



測試

執行程式輸出結果如下:

hello world


沒有留言:

AdSense