英文:
perform computation inside struct or interface?
问题
我正在构建一个要保存到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构建一个Web应用程序。
英文:
I am constructing a Data to save to mongodb. I have a json response from an API like this
{
coord: { lon: 20, lat: 30 }
main:
[
{"temp":304.15,"pressure":1005,"humidity":74,"temp_min":304.15,"temp_max":304.15}
]
}
inside main[0].temp, main[0].temp_min, main[0].temp_max values are in kelvin. I want to convert it to do conversions to celsius before saving it mongodb.
I can make a simple struct like this:
type Item struct {
Temp string
Pressure int
Humidity int
Temp_min string
Temp_max string
}
but I want to do a conversion in Temp, Temp_min & Temp_max before saving it.. Is there other way rather than assigning it to variable, then reassigning?. can this be done in an Interface?
Im still not fluent in Go, but I am studying, while building a webapp in Go.
答案1
得分: 1
你如何初始化你的结构体?
如果你可以访问它的值,你可以在结构体初始化时进行转换,就像这样:
func NewItem() *Item {
return &Item{convertToCelsius(temp), pressure, humidity, convertToCelsius(tempMin), convertToCelsius(tempMax)}
}
在这个例子中,NewItem
函数返回一个指向 Item
结构体的指针,结构体的各个字段通过调用 convertToCelsius
函数进行转换后进行初始化。
英文:
How do you initialize your structure?
If you have access to it's values, you can convert it during structure initialization, something like this:
func NewItem() *Item {
return &Item{convertToCelsius(temp), pressure, humidity convertToCelsius(tempMin), convertToCelsius(tempMax)}
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论