Проблема с заменой указателя

Ошибка указывает на

Could not find file 'C:\XXXX\MLNetExampleA\iris-data.txt'

Вы следовали за this step [/g0] и подтвердили, что файл действительно скопирован в папку вывода?

0
задан Michael 19 January 2019 в 21:25
поделиться

1 ответ

Я предлагаю поместить фактические значения конфигурации в поле в структуре Config, которая мутирует под блокировкой, а не мутировать указатель Config, потому что при встрече с вызывающими методами метод все равно будет иметь ссылку на старый указатель.

Например:

type Config struct {
    values map[string]interface{} // or whatever is appropriate for your config
    lock   sync.RWMutex
}

func (c *Config) Get(k string) (interface{}, bool) {
    c.lock.RLock()
    defer c.lock.RUnlock()
    v, ok := c.values[k]
    return v, ok
}

func (c *Config) Reload(path string) error {
    newConfig, err := LoadFromFile(path)
    if err != nil {
        return err
    }
    c.lock.Lock()
    defer c.lock.Unlock()
    c.values = newConfig.values
    return nil
}
0
ответ дан lmars 19 January 2019 в 21:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: