在Golang中能使用Label的有goto, break, continue.,这篇文章就介绍下Golang中Label使用和注意点.

注意点:

  1. Label在continue, break中是可选的, 但是在goto中是必须的
  2. 作用范围: 定义Label的函数体内.
  3. Label可以声明在函数体的任何位置, 不管Label声明在调用点的前面还是后面.

示例:

import (
	"fmt"
	"math/rand"
	"time"
)

func main() {
	rand.Seed(time.Now().UnixNano())

	const max = 5
	var uniques [max]int
  
loop:
	for found := 0; found < max; {
		n := rand.Intn(max) + 1
		fmt.Print(n, " ")

		for _, u := range uniques {
			if u == n {
				continue loop
			}
		}

		uniques[found] = n
		found++
	}

	fmt.Println("\n\nuniques:", uniques)
}