当我尝试同时写时,我的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)
程序完成后没有任何问题可以被我检测到,但是没有完整的结果(有些文件被写入但没有任何内容),当我go从go writeCsv(key, val)所有文件中移除时,也很好.