面试题答案
一键面试package main
import (
"fmt"
"os"
)
func readFile(filePath string) {
file, err := os.Open(filePath)
if err != nil {
fmt.Println("Error opening file:", err)
return
}
defer file.Close()
// 这里可以进行文件读取操作
// 例如:
// var buf [1024]byte
// n, err := file.Read(buf[:])
// if err != nil {
// fmt.Println("Error reading file:", err)
// return
// }
// fmt.Println(string(buf[:n]))
}
defer
语句执行的时机:当包含defer
语句的函数执行到返回时,会按照defer
语句定义的逆序依次执行这些defer
语句。也就是说,先定义的defer
语句后执行,后定义的defer
语句先执行。在上述函数中,当readFile
函数执行到return
语句或者函数结束时,会执行defer file.Close()
语句,确保文件被正确关闭。