golang代码 for defer
for _, filename := range filenames { f, err := os.Open(filename) if err != nil { return err } defer f.Close() // 会打开大量的文件 ...... } for _, filename := range filenames { if err := doFile(filename); err != nil { return err } } func doFile(filename string) error { // 改进, defer 移到函数里 f, err := os.Open(filename) if err != nil { return err } defer f.Close() // ...process f… }