MST

星途 面试题库

面试题:Go语言标签与跳转语句在函数调用中的应用

假设你有一个函数`func calculate(a, b int) int`,在函数内部可能会遇到不同的错误情况。请使用标签和跳转语句实现:当遇到除零错误时,跳转到一个特定的错误处理标签处,并返回一个错误码(例如 -1);当结果为负数时,跳转到另一个标签处并返回另一个错误码(例如 -2)。
13.6万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import "fmt"

func calculate(a, b int) int {
    result := 0
    // 定义错误处理标签
    labelDivideByZero:
    labelNegativeResult:

    if b == 0 {
        // 除零错误,跳转到除零错误处理标签
        goto labelDivideByZero
    }
    result = a / b
    if result < 0 {
        // 结果为负数,跳转到负数结果处理标签
        goto labelNegativeResult
    }
    return result

labelDivideByZero:
    fmt.Println("除零错误")
    return -1
labelNegativeResult:
    fmt.Println("结果为负数")
    return -2
}

你可以使用以下方式调用这个函数:

func main() {
    res := calculate(10, 0)
    fmt.Println("返回结果:", res)

    res = calculate(10, -2)
    fmt.Println("返回结果:", res)

    res = calculate(10, 2)
    fmt.Println("返回结果:", res)
}