Golang中的流程控制关键字goto
goto语句通过标签进行代码间的无条件跳转。goto语句可以在快速跳出循环、避免重复退出上有一定的帮助。
Golang中使用goto语句能简化一些代码的实现过程。例如双层嵌套的for循环要退出时。
Golang中的关键字goto实例
跳转到指定标签
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
   | package main
  import "fmt"
  func goto_lab() { 	i := 1 	if i >= 2 { 		fmt.Println("2") 	} else { 		goto END 	} END: 	fmt.Println("END...") }
  func main() { 	goto_lab() }
 
   | 
 
运行结果
跳出双重循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
   | package main
  import "fmt"
  func goto_doublefor() { 	for i := 0; i < 10; i++ { 		for j := 0; j < 10; j++ { 			if i >= 2 && j >= 2 { 				goto END 			} 			fmt.Printf("%v, %v\n", i, j) 		} 	} END: 	fmt.Println("END...") } func main() { 	goto_doublefor() }
   | 
 
运行结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
   | 0, 0 0, 1 0, 2 0, 3 0, 4 0, 5 0, 6 0, 7 0, 8 0, 9 1, 0 1, 1 1, 2 1, 3 1, 4 1, 5 1, 6 1, 7 1, 8 1, 9 2, 0 2, 1 END...
   | 
 
如果goto的地方使用break,则只会跳出里层循环,后面还会有3到9开头的结果继续输出。