Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 以字符串开头的结构字段名_Go - Fatal编程技术网

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。这是它打印出来的错误消息。我肯定是从一个字符串开始的,

我有一个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
。这是它打印出来的错误消息。我肯定是从一个字符串开始的,所以我不能删除引号

$ 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”
与field
pt.x无关
这是
结构您的实际用例吗?你能解释一下你想在哪里做这件事吗?你希望这段代码做什么?点
的字段名是
x
y
,而不是
a
。为什么它不给出
pt.x=2
?字符串
“x”
与field
pt.x无关
这是
结构您的实际用例吗?你能解释一下你想在哪里做这件事吗?你希望这段代码做什么?点
的字段名是
x
y
,而不是
a
。为什么它不给出
pt.x=2
?字符串
“x”
与field
pt.x无关
这是
结构您的实际用例吗?你能再解释一下你想在哪里做这件事吗?你希望这段代码做什么?点
的字段名是
x
y
,而不是
a
。为什么它不给出
pt.x=2
?字符串
“x”
与字段
pt.x
无关