在 JS 中,我可以:
const str = "Name"
const obj = {"Name" : "SomeName"}
console.log(obj[str])
我如何在 GoLand 中做到這一點?
uj5u.com熱心網友回復:
通常,您不會對 Go 中的結構執行此操作。當您需要能夠做到這一點時,最好的方法通常是創建一個map[string]stringfirst,您可以像在 JS 中一樣訪問它。然后你把它轉換成一個結構體,代碼如下
structFromMap := myStructType{
Name: myMap["Name"],
FavoritePokemon: myMap["FavoritePokemon"],
}
如果您確實需要以這種方式與結構互動,您可以匯入“反射”包,然后執行
reflect.ValueOf(myStruct).FieldByName("Name")
uj5u.com熱心網友回復:
package main
import (
"fmt"
"reflect"
)
func main() {
type user struct {
firstName string
lastName string
} // hire you define your struct
u := user{firstName: "John", lastName: "Doe"}
s := reflect.ValueOf(u)
fmt.Println("Name:", s.FieldByName("firstName"))
}
為了幫助你開始使用 Go,我推薦這個:https ://quii.gitbook.io/learn-go-with-tests/
好好學習/代碼:)
uj5u.com熱心網友回復:
好心,您可以在 golang 中使用映射:
str:= "name"
obj := map[string]interface{}{
"name": "someName",
}
fmt.printLn(obj[str])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/505079.html
上一篇:訪問自定義型別的原始功能
