Go 非标准变量名

Go 非标准变量名,go,Go,假设我想用一个结构表示HTTP头,类似于: Headers struct { 'x-requested-by' 'foo' } 它肯定不喜欢带有连字符等的变量名。有没有办法解决这个问题?将实际标题名指定为字段标记,并在对结构进行编码或解码时使用这些字段标记。有关如何执行此操作的示例,请参见软件包 如果更高级别的问题是使用任意字符串键存储键值对,那么请使用映射。将实际标题名称指定为字段标记,并在对结构进行编码或解码时使用这些字段标记。@ThunderCat您能举个例子吗?你

假设我想用一个结构表示HTTP头,类似于:

   Headers struct {
     'x-requested-by' 'foo'
   }

它肯定不喜欢带有连字符等的变量名。有没有办法解决这个问题?

将实际标题名指定为字段标记,并在对结构进行编码或解码时使用这些字段标记。有关如何执行此操作的示例,请参见软件包


如果更高级别的问题是使用任意字符串键存储键值对,那么请使用映射。

将实际标题名称指定为字段标记,并在对结构进行编码或解码时使用这些字段标记。@ThunderCat您能举个例子吗?你可以使用一个
map[string][]string
,这就是标准库中的
http.Header
。对Header使用一个struct是非常粗糙的。您可以处理的头集在编译时是固定的,无论头是否存在,您都将分配头,并且您将无法迭代它们。我强烈建议只使用stdlib(以及我见过的所有其他HTTP库)那样的映射。