使用反射在模板中檢索變數名稱
在模板處理中,可能需要用變數值動態取代標記佔位符。若要使用儲存在切片中的變數建立模板,您可以直接從原始程式碼中檢索它們的名稱。但是,需要注意的是,使用反射是不可能實現這一點的。
反射允許存取變數的類型、值和方法訊息,但不能存取其在原始程式碼中的名稱。這是因為編譯後的程式不會保留原始碼中使用的變數名稱。
在您的範例中,您建立了一個包含字串值但不包含變數名稱本身的切片 sa。因此,使用reflect.TypeOf(v).Name()僅提供變數的類型,而不是其名稱。
解決此問題的方法是使用不同的方法。不要將變數值直接儲存在切片中,而是考慮使用映射將變數名稱與其值關聯起來。這允許您存取變數名稱及其值,從而使您能夠有效地執行範本替換。
以上是反射可以從 Go 模板中檢索變數名稱以進行動態標記替換嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!