Golang - 函数
发布时间:2020-12-16 09:28:53 所属栏目:大数据 来源:网络整理
导读:目录 Golang - 函数 1. 自定义函数 2. defer关键字 3. 多个defer执行顺序 Golang - 函数 1. 自定义函数 函数声明格式 func 函数名( [参数列表] ) [返回值类型列表] { 函数体} 所有类型 //package 声明开头表示代码所属包package mainimport "fmt"//无参无返
目录
Golang - 函数1. 自定义函数函数声明格式 func 函数名( [参数列表] ) [返回值类型列表] { 函数体 } 所有类型 //package 声明开头表示代码所属包 package main import "fmt" //无参无返回值 func test01(){ fmt.Println("三无产品") } //有参无返回值 func test02(v1 int,v2 int){ fmt.Println(v1,v2) } func test022(v1,v2 int) { fmt.Println(v1,v2) } //有不定参数无返回值 func test03(args ...int){ //遍历 for _,n := range args{ fmt.Println(n) } } func main() { test03(1,2,3) } //无参有返回值 func test04()(a int,str string){ a = 666 str = "沙雕" return } //有参有返回值 func test05(num1 int,num2 int)(min int,max int){ if num1 > num2{ min = num2 max = num1 }else{ max = num2 min = num1 } return } 练习: 分别通过循环和递归函数,计算1+2+3……+100 //package 声明开头表示代码所属包 package main import "fmt" //第一种 func test011() int { i := 1 sum := 0 for i = 1; i <= 100; i++ { sum += i } return sum } //第二种 func test012(num int) int { if num == 1 { return 1 } return num + test012(num-1) } func main() { //fmt.Println(test011()) fmt.Println(test012(100)) } 2. defer关键字
3. 多个defer执行顺序//package 声明开头表示代码所属包 package main import "fmt" func test99(x int){ fmt.Println(100 / x) } func main() { defer fmt.Println("1号门") defer fmt.Println("2号门") test99(0) defer fmt.Println("3号门") } //2号门 //1号门 //panic: runtime error: integer divide by zero // //goroutine 1 [running]: //main.test99(0x0) //D:/awesomeProject/first.go:7 +0xb3 //main.main() //D:/awesomeProject/first.go:13 +0xed (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |