1、goto关键字
import "fmt" func main() { for i := 0;i <11;i++{ if i == 2{ //关键字,goto跳转到某个位置,且只能在当前函数内跳转 goto LABELT }else { fmt.Println(i) } } LABELT: fmt.Println("程序结束") }
2、函数
package main import "fmt" //无参数,无返回值的函数 func test01(){ fmt.Println("aaaa") } //有参数无返回值的函数 func test02(v1,int,v2 int) { fmt.Println(v1,v2) } func test03(v3,v4 int){ fmt.Println(v3,v4) } //不定参数,无返回值的函数,不定参数要放在最后 func test04(args ...int) { for _,i := range args { fmt.Println(i) } } //返回值,第一个是a,类型为int,第二个为s,类型为string func test05() (a int,s string) { a = 666 s = "123" return } //有参数,有返回值的函数 func test06(num1 int,num2 string) (a int,s string) { a = num1 + 100 s = num2 + "123" return } func main() { test04(1,2,3) v1,v2 := test05() fmt.Println(v1,v2) v3,v4 := test06(1,"abc") fmt.Println(v3,v4) }
3、defer语句
package main import "fmt" func test001() { //如果有多个defer语句,则先是倒序执行,比如下面的例子,限制性3,在执行2,最后执行1 defer fmt.Println("1") defer fmt.Println("2") defer fmt.Println("3") fmt.Println("干事情") } func test_temp(x int) { fmt.Println(100 / x) } func test002() { //如果有多个defer语句,则先是倒序执行,比如下面的例子,限制性3,在执行2,最后执行1 defer fmt.Println("1") defer fmt.Println("2") test_temp(0) defer fmt.Println("3") fmt.Println("干事情!!!") } func main() { //defer 这个关键字,无论他写在哪里,都是最后执行,主要用来关资源,释放连接之类的操作 //比如下面的例子,就是限制打酱油,在执行defer语句 defer fmt.Println("defer语句") fmt.Println("打酱油") //test001() test002() }