首頁  >  文章  >  後端開發  >  為什麼我的 Go 模板不評估具有未匯出欄位的條件?

為什麼我的 Go 模板不評估具有未匯出欄位的條件?

DDD
DDD原創
2024-10-28 05:44:02539瀏覽

 Why is my Go Template not Evaluating Conditionals with Unexported Fields?

使用Go 模板進行繁瑣的if 操作

嘗試在Go 模板中執行條件檢查時,您可能會遇到意想不到的問題。考慮以下場景:

您已宣告一個名為 Category 的結構,其中包含一個名為 isOrientRight 的 bool 欄位。在對 Category 結構體切片進行迭代的範圍循環中,您嘗試使用 {{if}} 語句根據 isOrientRight 的值控制輸出。然而,模板只顯示一個空白頁面。

要解決此問題,您需要透過大寫首字母來匯出 Category 結構體的欄位。預設情況下,未匯出的欄位(以小寫字母開頭)只能在聲明該類型的包內存取。在這種情況下,text/template 和 html/template 是單獨的包,因此您需要匯出欄位以允許它們存取。

以下是更新的程式碼:

type Category struct {
    ImageURL      string

以上是為什麼我的 Go 模板不評估具有未匯出欄位的條件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn