小编Mil*_*jic的帖子

我无法在for循环中同时写文件 - goroutine无法正常工作

当我尝试同时写时,我的Go项目中断了.

我有一张地图map[string][]strings.我想同时写文件,这些文件被命名为key + ".csv"和每个[]strings写入另一行的值到文件中的值.

我做了什么:

for key, val := range varValMap {
        go writeCsv(key, val)
    }
Run Code Online (Sandbox Code Playgroud)

功能是:

func writeCsv(variable string, values []string) {
    fName := variable + ".csv"
    fPath := filepath.Join(xmlFolder, "_varval", fName)
    file, err := os.Create(fPath)
    check(err)
    defer file.Close()
    for _, value := range values {
        fmt.Fprintf(file, value + "\n")
    }
}
Run Code Online (Sandbox Code Playgroud)

程序完成后没有任何问题可以被我检测到,但是没有完整的结果(有些文件被写入但没有任何内容),当我gogo writeCsv(key, val)所有文件中移除时,也很好.

concurrency for-loop go

0
推荐指数
1
解决办法
294
查看次数

标签 统计

concurrency ×1

for-loop ×1

go ×1