Go 以字符串开头的结构字段名
我有一个go结构,我需要使用其中一个字段。然而,我从一个字符串开始。我如何对其进行装箱以获得字段本身Go 以字符串开头的结构字段名,go,Go,我有一个go结构,我需要使用其中一个字段。然而,我从一个字符串开始。我如何对其进行装箱以获得字段本身 package main import "fmt" func main() { type Point struct{ x int y int } pt := Point{x:2, y:3} a := "x" fmt.Printf("%s", pt.a) } 由于a=“x”我期待pt.x=2。这是它打印出来的错误消息。我肯定是从一个字符串开始的,
package main
import "fmt"
func main() {
type Point struct{
x int
y int
}
pt := Point{x:2, y:3}
a := "x"
fmt.Printf("%s", pt.a)
}
由于a=“x”
我期待pt.x=2
。这是它打印出来的错误消息。我肯定是从一个字符串开始的,所以我不能删除引号
$ go run point.go
# command-line-arguments
./point.go:14: pt.a undefined (type Point has no field or method a)
如果需要访问名称为字符串的字段,那么除了使用反射之外别无选择。Go不是Python.:-) 有一个很好的解释 是反射包文档 但请注意,反射通常只能作为最后手段使用。它消除了静态安全性,对性能有害
你到底在找什么?也许有一种方法可以满足您的需求,而不必使用反射。例如,如果不需要将方法附加到结构,则可以使用
map[string]int
如果需要访问名称为字符串的字段,则只能使用反射。Go不是Python.:-)
有一个很好的解释
是反射包文档
但请注意,反射通常只能作为最后手段使用。它消除了静态安全性,对性能有害
你到底在找什么?也许有一种方法可以满足您的需求,而不必使用反射。例如,如果不需要将方法附加到结构,则可以使用
map[string]int
如果需要访问名称为字符串的字段,则只能使用反射。Go不是Python.:-)
有一个很好的解释
是反射包文档
但请注意,反射通常只能作为最后手段使用。它消除了静态安全性,对性能有害
你到底在找什么?也许有一种方法可以满足您的需求,而不必使用反射。例如,如果不需要将方法附加到结构,则可以使用
map[string]int
如果需要访问名称为字符串的字段,则只能使用反射。Go不是Python.:-)
有一个很好的解释
是反射包文档
但请注意,反射通常只能作为最后手段使用。它消除了静态安全性,对性能有害
你到底在找什么?也许有一种方法可以满足您的需求,而不必使用反射。例如,如果不需要将方法附加到结构上,可以使用
map[string]int
这是点
结构的实际用例吗?你能解释一下你想在哪里做这件事吗?你希望这段代码做什么?点的字段名是x
和y
,而不是a
。为什么它不给出pt.x=2
?字符串“x”
与fieldpt.x无关
这是点
结构您的实际用例吗?你能解释一下你想在哪里做这件事吗?你希望这段代码做什么?点的字段名是x
和y
,而不是a
。为什么它不给出pt.x=2
?字符串“x”
与fieldpt.x无关
这是点
结构您的实际用例吗?你能解释一下你想在哪里做这件事吗?你希望这段代码做什么?点的字段名是x
和y
,而不是a
。为什么它不给出pt.x=2
?字符串“x”
与fieldpt.x无关
这是点
结构您的实际用例吗?你能再解释一下你想在哪里做这件事吗?你希望这段代码做什么?点的字段名是x
和y
,而不是a
。为什么它不给出pt.x=2
?字符串“x”
与字段pt.x
无关