访问具有变量的golang结构域

时间:2018-03-21 23:13:56

标签: go indexing struct

供参考:example here

我正在尝试使用变量键访问struct字段,在PHP中解释一下,您可以执行以下操作。

$arr = ["test" => "foo"];
$key = "test";
$result = $arr[$key];

或者在Javascript中,您可以执行以下操作

const obj = {"test": "foo"}
const key = "test"
const result = obj[key]

这可能与结构有关吗?我已经搜索了这个功能,但答案似乎总是指向反射包并在struct字段上运行for循环。

我的代码(上面链接)获得了invalid operation: p[key] (type Post does not support indexing)的编译错误,这是有道理的,但我无法找到解决方法。

1 个答案:

答案 0 :(得分:3)

使用struct时的一个要点是,在编译时知道如何访问字段的方式。然后生成的代码使用添加到结构的基址的固定索引。

对于任何类型的动态,你只需要使用map[string]string或类似的。