面试题答案
一键面试package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
func readIntFromFile(filePath string) (int, error) {
file, err := os.Open(filePath)
if err != nil {
return 0, err
}
defer file.Close()
scanner := bufio.NewScanner(file)
if scanner.Scan() {
num, err := strconv.Atoi(scanner.Text())
if err != nil {
return 0, err
}
return num, nil
}
return 0, fmt.Errorf("no data found in file")
}
你可以这样调用这个函数:
func main() {
result, err := readIntFromFile("test.txt")
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
fmt.Printf("Read integer: %d\n", result)
}
上述代码中,readIntFromFile
函数从指定文件路径读取文件内容,并尝试将读取到的第一行内容转换为整数。如果文件打开失败、读取失败或转换失败,函数都会返回错误。在 main
函数中调用 readIntFromFile
函数时,对返回的错误进行了检查并打印。