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)
}
}
測試
執行程式輸出結果如下:
hello world
沒有留言:
張貼留言