go - 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
结束了函数的执行?
它是如何工作的?
解决方案
与大多数(如果不是全部?)一样,编译器命中的第一个返回语句将退出函数而不继续。
推荐阅读
- stm32 - Keil 调试器更改 STM32H7 关于 FIFO 的硬件状态
- nginx - 使用白名单时 nginx 速率限制不起作用的问题
- windows - Sony Spresense SDK -VS 代码扩展 - 无效参数 # 包括
关于 HelloWorld 的全新构建 - python - 如何在没有打印功能的情况下工作返回?
- python - 应用程序来拉环境。本地运行时的变量,但在 ECS 集群上运行时的 EC2 实例凭据?
- java - Java Generic 从 Activity 到 Fragment 到 Adapter
- r - 在 R 中制作字符序列的最聪明方法
- git - Git 帮助:如何重置 git?不是分支,而是所有 git?
- java - 如何创建这些矩阵?
- amazon-web-services - 是否需要在外部网站中为 AWS Cloudfront 进行配置?