▪ 定義結構體
▪ 定義模版文字
▪ 模版渲染及輸出方式
▪ 完整例子
首先,定義乙個結構體,用於後面的模版渲染
type person struct
注意:struct的元素必須要可匯出(大寫打頭),否則渲染時候找不到例項化結構體,用於模版渲染時候獲得對應值
foo := person
接下來,定義乙個模版文字,此處直接定義了乙個常量,表示模版文字
const text = `my name is },
i'm } years old,
i'm a }boy}girl}.
`
讀取文字,獲取template的handler
tmpl, err := template.new("").parse(text)
if err != nil
在渲染時候需要傳遞乙個引數,用於指定輸出到何處,常見的有3種目的地:
▷ 輸出到檔案
▷ 輸出到變數
▷ 輸出到螢幕
輸出到檔案:需要先open乙個檔案並獲得檔案控制代碼
f, err := os.openfile("/tmp/test", os.o_wronly|os.o_create, 0644)
defer f.close()
if err != nil
// 渲染並寫入檔案
if err := tmpl.execute(f, foo); err != nil
輸出到變數
var buf bytes.buffer
if err := tmpl.execute(&buf, foo); err != nil
fmt.println(buf.string())
輸出到螢幕
if err := tmpl.execute(os.stdout, foo); err != nil
package main
import (
"log"
"os"
"text/template"
)type person struct
func main()
// 定義模版文字
const text = `my name is },
i'm } years old,
i'm a }boy}girl}.
` // 根據指定模版文字生成handler
tmpl, err := template.new("").parse(text)
if err != nil
// 模版渲染,並寫入檔案
f, err := os.openfile("/tmp/test", os.o_wronly|os.o_create, 0644)
defer f.close()
if err != nil
if err := tmpl.execute(f, foo); err != nil
// 模版渲染,並賦值給變數
var buf bytes.buffer
if err := tmpl.execute(&buf, foo); err != nil
fmt.println(buf.string())
// 模版渲染,並輸出到螢幕標準輸出
if err := tmpl.execute(os.stdout, foo); err != nil
}
測試效果
# 編譯
go build template.go
./template
# 輸出
my name is foo,
i'm 18 years old,
i'm a girl.
my name is foo,
i'm 18 years old,
i'm a girl.
# 檢視檔案(/tmp/test)內容
my name is foo,
i'm 18 years old,
i'm a girl.
渲染及shader學習筆記
1.shader學習工具 rendermonkey 2.shader學習書籍 shaders for game programmer adn artists 3.高度圖軟體 4.其它書籍 real time rendering 4th edition 光照,陰影等多種渲染演算法 實時地形引擎 dir...
Python 學習筆記(六)(輸入輸出及檔案)
輸入 input input是請使用者輸入,括號中是要輸出的提示內容 輸出 輸出有兩種方式 str format str name input 請輸入你的姓名 print hello str name format coding utf 8 str1 python str2 love print h...
linux學習筆記之輸出重定向管道符及萬用字元
裝置裝置檔名檔案描述符型別 鍵盤 dev stdin 0標準輸入 顯示器 dev stdout1標準輸出 顯示器 dev stdout2標準錯誤輸出 輸出重定向 注意!錯誤命令的輸出重定向 或 兩側無空格 型別符號 作用 標準輸出重定向命令 檔案 以覆蓋的方式,把命令的正確輸出輸出到指定的檔案或裝置...