MST

星途 面试题库

面试题:Go多值返回在错误处理中的应用

在Go语言中,函数常常使用多值返回来同时返回结果和错误信息。请编写一个函数,该函数接收一个整数切片,尝试计算切片中所有数字的平均值。如果切片为空,函数应返回错误。请展示如何通过多值返回正确处理结果和错误,并给出调用该函数的示例代码。
30.8万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
)

func calculateAverage(nums []int) (float64, error) {
    if len(nums) == 0 {
        return 0, fmt.Errorf("切片为空,无法计算平均值")
    }
    sum := 0
    for _, num := range nums {
        sum += num
    }
    return float64(sum) / float64(len(nums)), nil
}

调用示例:

func main() {
    nums1 := []int{1, 2, 3, 4, 5}
    avg, err := calculateAverage(nums1)
    if err != nil {
        fmt.Println("错误:", err)
    } else {
        fmt.Println("平均值:", avg)
    }

    nums2 := []int{}
    avg, err = calculateAverage(nums2)
    if err != nil {
        fmt.Println("错误:", err)
    } else {
        fmt.Println("平均值:", avg)
    }
}