回答

收藏

为什么 Go 有一个“goto”语句

技术问答 技术问答 276 人阅读 | 0 人回复 | 2023-09-12

我惊讶地发现 Go 有一个“goto句子。我一直被教导goto语句已经成为过去和邪恶,因为它会阻碍程序的实际过程,函数或方法总是控制过程的更好方法。
# Z  E8 r- W1 F# v8 {0 q4 \我一定错过了什么。谷歌为什么包括它?2 h9 O4 D. x7 L5 B* d2 W; R) ~, e0 @
                                                                & N( z/ |) W6 J) P) q8 G! f
    解决方案:                                                                1 ?$ v+ T: L0 d4 t- G6 Q
                                                                实际检查 Go当 标准库的源代码时,我们可以看到gotos 实际应用良好的地方。$ t& C$ @4 Y1 M+ @1 `2 Q  A
例如,在math/gamma.go以下文件用于文件goto语句:
3 T7 x- m" K2 m& v" r[code]  for x  -1e-09 {             goto small   }    z = z / x    x = x  1      for x 在goto在这种情况下,我们节省了从导入到控制流的另一个(布尔值)变量。在这种情况下,该goto句子实际上使代码更容易阅读和遵循(和goto你提到的反对论点完全相反)。/ O6 ]$ e* b9 y  C1 {
请注意,这个goto语句有一个非常具体的用例。goto 语言规范声明不能跳过进入作用域(声明)的变量或其他(代码)块。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则