MST
星途 面试题库

面试题:Go多值返回机制中错误处理相关

在Go语言中,函数经常使用多值返回机制来同时返回结果和错误。请举例说明一个函数使用多值返回,并且对错误进行恰当处理。假设你要编写一个函数,从文件中读取整数,若读取失败返回错误,你将如何实现?
32.0万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
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 函数时,对返回的错误进行了检查并打印。