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

 

posted @ 2020-05-27 20:24  是的哟  阅读(752)  评论(0编辑  收藏  举报