Go 模板使用

一 ?什么是模板?

你一定聽說過一種叫做MVC的設計模式,Model處理數據,View展現結果,Controller控制用戶的請求,至于View層的處理,在很多動態語言里面都是通過在靜態HTML中插入動態語言生成的數據,例如JSP中通過插入<%=....=%>,PHP中通過插入來實現的。

通過下面這個圖可以說明模板的機制

Web應用反饋給客戶端的信息中的大部分內容是靜態的,不變的,而另外少部分是根據用戶的請求來動態生成的,例如要顯示用戶的訪問記錄列表。用戶之間只有記錄數據是不同的,而列表的樣式則是固定的,此時采用模板可以復用很多靜態代碼

二 Template 使用

package main

import(

"html/template"

"os"

)

type Person struct{

UserName string//必須大寫,否則不能顯示

Emails? []string

Friends? []*Friend

}

func main() {

t := template.New("fieldname example")

t,_ = t.Parse("hello {{.UserName}}!")

p := Person{UserName:"Astaxie"}

t.Execute(os.Stdout,p)

//foo()

}

Go語言的模板通過{{}}來包含需要在渲染時被替換的字段,{{.}}表示當前的對象,這和Java或者C++中的this類似,如果要訪問當前對象的字段通過{{.FieldName}},但是需要注意一點:這個字段必須是導出的(字段首字母必須是大寫的),否則在渲染的時候就會報錯

https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/07.4.md

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,739評論 18 399
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,819評論 25 708
  • 大二那年的暑假,一直忙于兼職打工的歡子突然給我來了個電話。 “日爺,你覺得現在靈芝賣的怎么樣?” 我被歡子這句沒頭...
    梁知夏閱讀 1,552評論 48 50
  • 目前在努力ing,邊寫代碼邊轉產品助理,調查好小眾產品,就和同事開淘寶! 補:2018-10-30:現在就想著開心就好
    BBBBean閱讀 200評論 0 5