为了账号安全,请及时绑定邮箱和手机立即绑定

使用 structs 、 maps 或其他东西?

使用 structs 、 maps 或其他东西?

Go
杨魅力 2021-11-08 16:10:25
我是 Go 的新手(并且在某种程度上编程),所以使用边学边练的方法。对于下面的代码(它提取天气预报),我希望从我拥有的列表中填充经度和纬度。我不完全确定如何首先设置该列表 - 使用结构然后将存储结构的值通过管道传输到此代码中?我试过了,似乎我只能在一个结构中保存一对经纬度。我正在考虑使用地图,但无法弄清楚如何设置它。也许,我应该将值列表存储在文本文件中并从那里读取:p := Place{    placeName: "Accra", lat: "43.6595", long: "-79.3433",    placeName: "Kumasi", lat: "43.6595", long: "-79.3433",    placeName: "Tamale", lat: "43.6595", long: "-79.3433",}f, err := forecast.Get(key, p.lat, p.long, "now", forecast.CA)if err != nil {    log.Fatal(err)}结构看起来像这样(我有大约 10 个单独的 long/lat 值要使用)type Place struct {    placeName string    lat       string    long      string}
查看完整描述

1 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

该Place结构是一个对象,它有三个属性,名称和经纬度和长。为了拥有多个,您必须单独实例化它们,通常,您会将它们存储在一个集合中。在 Go 中,明智的选择是数组、切片或映射。


这是一个使用切片的示例。数组的语法大致相同。如果你愿意,我可以提供一个例子,在我吃完午饭回来后使用地图。要注意的另一件事是,我使用称为“复合文字”的语法分配集合,还有其他方法可以做到这一点......我可以使用append方法或更传统的分配给索引/键,如myArray[0] = instanceOfPlaceThatIsAlreadyInitialized.


places := []Place{

        Place{placeName: "Accra", lat: "43.6595", long: "-79.3433"},

        Place{placeName: "Kumasi", lat: "43.6595", long: "-79.3433"},

        Place{placeName: "Tamale", lat: "43.6595", long: "-79.3433"},

    }

扩展示例;https://play.golang.org/p/EHBgn_I9dA


编辑:与地图相同;


places := map[string]Place{

        "Accra":Place{placeName: "Accra", lat: "43.6595", long: "-79.3433"},

        "Kumasi":Place{placeName: "Kumasi", lat: "43.6595", long: "-79.3433"},

        "Tamale": Place{placeName: "Tamale", lat: "43.6595", long: "-79.3433"},

    }

https://play.golang.org/p/1A45-Z6k7q


查看完整回答
反对 回复 2021-11-08
  • 1 回答
  • 0 关注
  • 169 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信