首页 > 解决方案 > Go Tour flowcontrol #5:理解 return 关键字

问题描述

在流程控制 Go Tour 的幻灯片 #5中,我不明白return关键字在 function 中是如何工作的sqrt()

func sqrt(x float64) string {
    if x < 0 {
        return sqrt(-x) + "i"
    }
    return fmt.Sprint(math.Sqrt(x))
}

else我用这样的子句理解代码

func sqrt(x float64) string {
    if x < 0 {
        return sqrt(-x) + "i"
    }else{
        return fmt.Sprint(math.Sqrt(x))
    }
}

此代码执行没有问题,但 VsCode 中的 linter golint 抱怨该else子句。

return sqrt(-x) + "i"第一个块内的语句是否if结束了函数的执行?

它是如何工作的?

标签: go

解决方案


与大多数(如果不是全部?)一样,编译器命中的第一个返回语句将退出函数而不继续。


推荐阅读