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…
    }

猜你喜欢

转载自www.cnblogs.com/ts65214/p/12976301.html