gpt4 book ai didi

包含一组加载一次的数据的 Go 包

转载 作者:数据小太阳 更新时间:2023-10-29 03:24:47 24 4
gpt4 key购买 nike

我正在编写一个邮政编码位置查找包,它从一个 csv 加载所有英国邮政编码,我只想在我想知道用 Go 实现此目的的最佳模式是什么时才加载数据。

type Location struct {
Latitude float64
Longitude float64
}

var postCodeCache = make(map[string]Location)

这些是我的数据类型,目前我有一个名为 LoadData 和 LookupPostCode() 的函数。理想情况下,我希望导入我的包,如果尚未加载数据,它会自动加载数据。

最佳答案

你有两个选择:

  1. 最简单的方法是在任何其他处理开始之前将数据加载到 main 中。如果您读取数据的可能性非常高,并且没有其他理由避免立即这样做,为什么不呢?

  2. 使用 sync.Once 加载数据。像这样的东西:

    var dataLoaded sync.Once
    var data DataType = nil

    func LookupPostCode(some_args) {
    once.Do(func() {
    data = LoadData(some_subset_of_some_args)
    })
    // and here I know, that data are loaded
    }

关于包含一组加载一次的数据的 Go 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44986977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com