相关疑难解决方法(0)

在for循环中使用指针 - Golang

我是golang的新手,并且很难理解为什么我的代码中有一个错误而不是另一个状态.我已经有一段时间了,因为我已经覆盖了指针,所以我可能生锈了!

基本上我有一个存储库结构,我用来将一个对象存储在内存中,它有一个Store函数.

type chartsRepository struct {
    mtx    sync.RWMutex
    charts map[ChartName]*Chart
}

func (r *chartsRepository) Store(c *Chart) error {
    r.mtx.Lock()
    defer r.mtx.Unlock()
    r.charts[c.Name] = c
    return nil
}
Run Code Online (Sandbox Code Playgroud)

所以它只是将RW互斥锁置于其上并将指针添加到地图,由标识符引用.

然后我有一个函数,它将基本上遍历这些对象的一部分,将它们全部存储在存储库中.

type service struct {
    charts Repository
}

func (svc *service) StoreCharts(arr []Chart) error {
    hasError := false
    for _, chart := range arr {
        err := svc.repo.Store(&chart)
        // ... error handling
    }
    if hasError {
        // ... Deals with the error object
        return me
    }
    return nil
}
Run Code Online (Sandbox Code Playgroud)

上面的方法不起作用,看起来一切正常,但是在尝试以后访问数据时 …

pointers mutex for-loop go

15
推荐指数
2
解决办法
4704
查看次数

标签 统计

for-loop ×1

go ×1

mutex ×1

pointers ×1