Struct 在结构或接口内执行计算?

Struct 在结构或接口内执行计算?,struct,interface,go,Struct,Interface,Go,我正在构造一个要保存到mongodb的数据。我有一个来自这样一个API的json响应 { coord: { lon: 20, lat: 30 } main: [ {"temp":304.15,"pressure":1005,"humidity":74,"temp_min":304.15,"temp_max":304.15} ] } 主管道[0]内部。温度,主管道[0]。温度最小值,主管道[0]。温度最大值以开尔文为单位。我想在保存mongodb之

我正在构造一个要保存到mongodb的数据。我有一个来自这样一个API的json响应

{
  coord: { lon: 20, lat: 30 }
  main:
      [
        {"temp":304.15,"pressure":1005,"humidity":74,"temp_min":304.15,"temp_max":304.15}
      ]
}
主管道[0]内部。温度,主管道[0]。温度最小值,主管道[0]。温度最大值以开尔文为单位。我想在保存mongodb之前将其转换为摄氏度

我可以制作这样一个简单的结构:

type Item struct {
  Temp string
  Pressure int
  Humidity int
  Temp_min string
  Temp_max string
} 
func NewItem() *Item {
    return &Item{convertToCelsius(temp), pressure, humidity convertToCelsius(tempMin), convertToCelsius(tempMax)}
}
但在保存之前,我想在Temp、Temp_min和Temp_max中进行转换。。除了将其赋值给变量,然后重新赋值,还有其他方法吗?。这可以在接口中完成吗


我的围棋仍然不太流利,但我正在学习,同时在围棋中构建一个网络应用程序

如何初始化结构

如果您有权访问它的值,则可以在结构初始化期间对其进行转换,如下所示:

type Item struct {
  Temp string
  Pressure int
  Humidity int
  Temp_min string
  Temp_max string
} 
func NewItem() *Item {
    return &Item{convertToCelsius(temp), pressure, humidity convertToCelsius(tempMin), convertToCelsius(tempMax)}
}

修改反序列化对象是一种不好的做法,因为该对象可能已损坏。您应该重新生成要序列化的新对象。您好,谢谢您的建议!,我可以访问它的值,我试着按照你的建议去做,我想这对我来说很好。这样我就可以有一个setter函数。非常感谢。