go语言之goto语句和函数和defer语句

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()
}

  

 

上一篇:【HihoCoder - 1502】最大子矩阵(二维前缀和,尺取)


下一篇:C++中的float&double的存储原理