首頁 > 後端開發 > Golang > 主體

Go 中的反射可以從變數的值中檢索變數的名稱嗎?

Barbara Streisand
發布: 2024-11-26 11:45:11
原創
964 人瀏覽過

Can Reflection Retrieve a Variable's Name from Its Value in Go?

我可以從變數的值中檢索它的名稱嗎?

問題:在範本系統的上下文中,如何取得變數的名稱名稱僅基於使用反射的值?這將允許我用實際的變數名稱替換模板中的佔位符值。

使用反射:

我嘗試使用反射來檢索變數名稱,但是我沒有成功。這是我嘗試過的程式碼:

onevar := "something"
other := "something else"

var msg string
sa := []string{onevar, other}
for _, v := range sa {
    vName := reflect.TypeOf(v).Name()  // Attempt to get the variable name
    vName = fmt.Sprintf("{{%s}}", vName)  // Prefix the name with "{{" and "}}"
    msg = strings.Replace(msg, vName, v, -1)  // Replace the placeholder with the actual value
}
登入後複製

這個方法不會產生所需的結果,因為切片 sa 只包含變數值,而不是變數名稱。

答案:

在這種情況下不能使用反射來擷取變數名稱。切片 sa 包含變數的值,而不是變數名稱本身。為了實現用變數名稱取代佔位符的目標,建議使用映射而不是切片。映射可以將變數名稱與其值關聯起來,從而實現高效、準確的替換。

以上是Go 中的反射可以從變數的值中檢索變數的名稱嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板