當前位置:
首頁 >
Golang 匿名结构体及测试代码编写技巧
發(fā)布時間:2025/4/16
46
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Golang 匿名结构体及测试代码编写技巧
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
轉(zhuǎn)自: https://www.jianshu.com/p/901820e17ffb
結構體基礎
結構體 (struct) 將多個不同類型的字段集中組成一種復合類型,按聲明時的字段順序初始化。 type user struct {name stringage byte }user := user {"Tom", 2}定義匿名結構體時沒有 type 關鍵字,與其他定義類型的變量一樣,如果在函數(shù)外部需在結構體變量前加上 var 關鍵字,在函數(shù)內(nèi)部可省略 var 關鍵字。 // 在函數(shù)外部定義匿名結構體并賦值給 config var config struct {APIKey stringOAuthConfig oauth.Config }// 定義并初始化并賦值給 data data := struct {Title stringUsers []*User }{title,users }匿名結構體在四種常見情景下的用法。
組織全局變量
屬于同一類的全局變量可通過匿名結構體組織在一起。var config struct {APIKey stringOAuthConfig oauth.Config }config.APIKey = "BADC0C0A"數(shù)據(jù)模版
可在后端把數(shù)據(jù)組織成前端需要的格式傳給渲染模版 package mainimport ("html/template""net/http""strings" )type Paste struct {Expiration stringContent []byteUUID string }func pasteHandler(w http.ResponseWriter, r *http.Request) {paste_id := strings.TrimPrefix(r.URL.Path, "/paste")paste := &Paste{UUID: paste_id}keep_alive := falseburn_after_reading := falsedata := struct {Paste *PasteKeepAlive boolBurnAfterReading bool} {paste,keep_alive,burn_after_reading,}t, _ := template.ParseFiles("templates/paste.html")t.Execute(w, data) }匿名函授定義并初始化之后賦值給 data 變量,除了把 Paste 結構體對象的值傳給前端之外,還額外添加了必要的字段。 寫過前后端的同學應該知道,前端有時需要后端返回一個標志變量作為判斷條件是否顯示某一塊內(nèi)容。 Expiration: {{ .Paste.Expiration }} UUID: {{ .Paste.UUID}} {{ if .BurnAfterReading }} BurnAfterReading: True {{ else }} BurnAfterReading: False {{ end }}測試案例數(shù)據(jù)
在寫測試代碼時,經(jīng)常用到匿名結構體生成用例的輸入輸出,為了覆蓋各個測試維度,通常結合切片使用,構成了測試樣例盡可能地覆蓋所有可能發(fā)生情況。 var indexRuneTests = []struct {s stringrune runeout int }{{"a A x", 'A', 2},{"some_text=some_value", '=', 9},{"?a", 'a', 3},{"a??b", '?', 4}, }嵌入式鎖 (Embedded lock)
var hits struct {sync.Mutexn int }hits.Lock() hits.n++ hits.Unlock()轉(zhuǎn)載于:https://www.cnblogs.com/nyist-xsk/p/11226725.html
總結
以上是生活随笔為你收集整理的Golang 匿名结构体及测试代码编写技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Go语言实例化结构体——为结构体分配内存
- 下一篇: poj3264 线段树