go基础(5.1)go label 的用法

go中的label来自于 C/C++的的goto(问了下公司写C++的据说都不怎么用,容易导致程序运行混乱)

它的作用用过来标记某行;用goto 语句的时候,goto后边需要跟个标号,就知道跳转到哪一行;

例:

fmt.Println("皮卡丘")

goto KEDAYA

fmt.Println("火箭队")

KEDAYA:

fmt.Println("可达鸭")

//上面代码 执行到goto KEDAYA时候  直接跳到执行fmt.Println("可达鸭")

注意:

1.在go语言中标记了某行label 就必须使用到,不然会报错

2.一般情况下使用Label的有goto, continue,break,goto后面必须跟label的名称   continue,break可以不用

continue 用法:

KEDAYA:

for i :=1; i <5; i++ {

if i ==3 {

continue KEDAYA

}

fmt.Println(i)

}

break 用法:

KEDAYA:

for i :=1; i <5; i++ {

if i ==3 {

break KEDAYA

}

fmt.Println(i)

}

(有一说一,这玩意儿感觉很鸡肋,用了跟只用continue和break一样 )

3.Label可以声明在函数体的任何地方,作用范围也就在函数体内

4.嵌套函数的Label无法使用,外面的无法使用嵌套函数内的label,嵌套函数内也无法使用外面的label

5.不可以有两个相同名字的label,label名区分大小写的,label可以和变量名称一样(当然你要跟变量重名的话,你可能被别的程序员打死)

6.goto必须在变量声明之后,变量的声明没法被跳过

你可能感兴趣的:(go基础(5.1)go label 的用法)