MST

星途 面试题库

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

在Go语言中,经常使用多返回值来同时返回结果和错误信息。请编写一个函数,该函数接收一个整数切片,计算切片中所有元素的和,并返回和以及可能出现的错误(比如切片为空时返回一个自定义错误)。同时说明如何调用这个函数并正确处理错误。
47.7万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "errors"
    "fmt"
)

// 自定义错误
var EmptySliceError = errors.New("切片为空")

// 计算切片元素和的函数
func sumSlice(nums []int) (int, error) {
    if len(nums) == 0 {
        return 0, EmptySliceError
    }
    sum := 0
    for _, num := range nums {
        sum += num
    }
    return sum, nil
}

调用这个函数并处理错误:

func main() {
    nums1 := []int{1, 2, 3, 4, 5}
    sum, err := sumSlice(nums1)
    if err != nil {
        fmt.Println("错误:", err)
    } else {
        fmt.Println("和为:", sum)
    }

    nums2 := []int{}
    sum, err = sumSlice(nums2)
    if err != nil {
        fmt.Println("错误:", err)
    } else {
        fmt.Println("和为:", sum)
    }
}

在上述代码中:

  1. 首先定义了一个自定义错误EmptySliceError,用于切片为空时返回。
  2. sumSlice函数接收一个整数切片,检查切片是否为空,如果为空返回自定义错误,否则计算切片元素的和并返回和与nil(表示无错误)。
  3. main函数中,进行了两次调用,一次传入非空切片,一次传入空切片,分别展示了正确处理结果和错误的方式。