第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 go 模板中轉(zhuǎn)換給定的代碼

如何在 go 模板中轉(zhuǎn)換給定的代碼

Go
慕森卡 2022-06-01 18:05:49
我正在使用go. text/template我想做類似的事情:method = some_varpath = some_other_var    if method is "GET" and "ID" in path如何在 go 模板中執(zhí)行此操作?我正在這樣做。{{- if and eq .Method "GET" contains "AssetID" .OperationId -}}編輯:問題是我正在使用openAPI 來生成服務器代碼樣板。所以模板在那個倉庫中。我正在這樣做:$ go get github.com/deepmap/oapi-codegen/cmd/oapi-codegen$ oapi-codegen \    -templates my-templates/ \    -generate types,server \    example-expanded.yaml  上面的 oapi-codegen 行在這里。my-templates 包含我已更改的模板。這些也由oapi-codegen. 此目錄包含它們,我已經(jīng)復制并更改了其中一些,并按照此處的指示執(zhí)行了步驟。在我更改的其中一個模板中,我想使用contains. 最好的方法是什么?
查看完整描述

1 回答

?
SMILET

TA貢獻1796條經(jīng)驗 獲得超4個贊

模板中沒有內(nèi)置contains函數(shù),因此您必須為此注冊函數(shù)。您可以使用strings.Contains()標準庫中的函數(shù)。作為參考,這里列出了可用的內(nèi)置模板函數(shù):函數(shù)


你必須像這樣對eqand的參數(shù)進行分組contains:


{{if and (eq .Method "GET") (contains .AssetID .OperationId)}}

    true

{{else}}

    false

{{end}}

注冊strings.Contains()函數(shù)、解析模板并執(zhí)行它的示例代碼:


t := template.Must(template.New("").Funcs(template.FuncMap{

    "contains": strings.Contains,

}).Parse(src))


params := map[string]interface{}{

    "Method":      "GET",

    "AssetID":     "/some/path/123",

    "OperationId": "123",

}

if err := t.Execute(os.Stdout, params); err != nil {

    panic(err)

}


params["OperationId"] = "xxx"

if err := t.Execute(os.Stdout, params); err != nil {

    panic(err)

}

這將輸出(在Go Playground上嘗試):


true


false


查看完整回答
反對 回復 2022-06-01
  • 1 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號