
如果函数的目的是返回文件,为什么要在返回文件的函数中将其关闭?
在这种情况下, 调用者 有责任正确关闭文件,最好使用
defer:
func usingGetConnection() { f := getConnection("file.txt") defer f.Close() // Use f here}尽管您的
getConnection()函数吞没了错误,但是您应该使用多次返回值来指示类似以下问题:
func getConnection(fileName string) (*os.File, error) { file, err := os.Open(fileName) //Check for error if err != nil { return nil, err } return file, nil}并使用它:
func usingGetConnection() { f, err := getConnection("file.txt") if err != nil { panic(err) // Handle err somehow } defer f.Close() // Use f here}欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)