2016-12-06 99 views
-1

“型”是一种语言的关键字,但我需要使用它作为一个属性名称,我的结构,如:如何在Go中使用“type”作为结构属性?

type Message struct{ 
    type string 
} 

我的IDE中发现了错误线2

+1

你为什么需要使用它?如果你正在解组JSON/Yaml,也许你可以看看标签。为其他语言命名你的字段,并简单地在它旁边添加一些结构标签,如''json:“type”'' – Depado

+0

我正在从另一种语言重写应用程序到GO。序列化对象需要具有相同的字段名称。我将使用'json'结构标签。没有其他的解决方案 –

回答

3

为什么你需要使用type

当你需要使用这个属性来解析JSON编码的数据,你可以写:

type Message struct { 
    Kind string `json:"type"` 
} 
+0

为什么不呢?实际上,它是一个json序列化对象,所以我可以像你说的那样做。 –

3

type在Go一个keyword,所以你不能用它作为标识符。作为替代方案,你可以使用:

  • 出口Type
  • type_
  • typ

所有这些我从围棋源代码了。

+0

我期待着一个神奇的解决方案:( –

+0

对不起,唯一的魔法就是没有任何魔法:) –