struct - 在结构或接口(interface)内部执行计算?

标签 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}
      ]
}

在 main[0].temp、main[0].temp_min、main[0].temp_max 中,值以开尔文为单位。我想在将其保存为 mongodb 之前将其转换为摄氏温度。

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

type Item struct {
  Temp string
  Pressure int
  Humidity int
  Temp_min string
  Temp_max string
} 

但我想在保存之前在 Temp、Temp_min 和 Temp_max 中进行转换。有没有其他方法而不是将其分配给变量,然后重新分配?这可以在界面中完成吗?

我仍然不擅长 Go,但我正在学习,同时用 Go 构建一个 webapp。

最佳答案

你如何初始化你的结构?

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

func NewItem() *Item {
    return &Item{convertToCelsius(temp), pressure, humidity convertToCelsius(tempMin), convertToCelsius(tempMax)}
}

关于struct - 在结构或接口(interface)内部执行计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24584651/

相关文章:

c - const 结构实例中成员的有效类型?

python - 使用 numpy.frombuffer 读取 cffi.buffer 时如何处理 C 结构中的成员填充?

javascript - 接口(interface)中TypeScript函数声明的区别

go - 调用 cancelFunc() 时(多快)取消 golang 子函数?

new-operator - 如何在 Go 结构中初始化成员

sql-server - FreeTDS unixODBC 并发连接数

c++ - 访问结构成员的模板函数

c - c中的嵌套结构

java - Android:接口(interface)与 get 方法

java - 如果接口(interface)只声明了方法签名,为什么我们还需要接口(interface)呢?