go语言goto的用法、原则,及注意事项

如果可以,不用goto

go语言中,goto有点像超链接标记文本HTML中的ID锚,可以让程序跳到标记的地方,然后从这个地方执行。这不是一个很好用的设计,因为一不小心就可能陷入无限循环,这样的程序对计算机来说是非常具有破坏性的。除此之外,还有诸多疑问,比如标记点一定要在goto之前吗,之后出现行不行,如果出现两个重复的标记,那么goto又将让程序去到哪里呢?我们接下来一一地进行尝试。


goto的基本用法实例

package main

import (
	"fmt"
)

func main() {

	var a int = 0
Here: //goto的标记,标记名称对大小写敏感
	if a < 6 { //增加条件判断,避免进入无限循环
		fmt.Println(a)
		a++
		goto Here
	}

}

代码输出:
0
1
2
3
4
5

goto的标记可不可以出现在goto之后

我们用一个实例来尝试一下:

package main

import (
	"fmt"
)

func main() {

	goto Here

	fmt.Println("如果这一行打印出来,说明goto标记在goto之下不能完成跳转。")
Here:
	fmt.Println("goto标记在goto之下也能完成跳转")

}

代码输出:
goto标记在goto之下也能完成跳转

多个goto标记的情况

如果goto标记出现多个,那么goto会跳转到哪里去呢?

package main

import (
	"fmt"
)

func main() {
Here:
	fmt.Println("1")

	goto Here

	fmt.Println("2")
Here:
	fmt.Println("3")

}
代码输出:
./test.go:14:1: label Here already defined at ./test.go:8:1

由此可见,goto的标记label是不能重复的。



全栈后端 / go语法 :













Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.