package main;import ( "fmt");func main() { isRun := true; //条件判断 if isRun { fmt.Printf("run\n"); } else { fmt.Printf("not run\n"); } //多条件判断 a := 15; if a > 0 && a < 10 { fmt.Printf("0-10\n"); } else if a > 10 && a < 20 { fmt.Printf("10-20\n"); } else if a > 20 { fmt.Printf(">20\n"); } //goto跳转当前函数内定义的标签 b := 10; TEST: if b != 0 { fmt.Println(b); b--; goto TEST; } //for循环 sum := 0; for i := 0; i < 100; i++ { sum += i; } fmt.Println(sum); //for配合range读取map和slice中数据 var s = []int{1,2,3,4,5}; for k,v := range s { fmt.Println(k,v); } m := make(map[string]string); m["name"] = "xiaoxu"; m["age"] = "27"; m["sex"] = "男"; for k,v := range m { fmt.Println(k,v); } //switch分支判断 //Go里面switch默认每个case最后带有break //可以使用fallthrough强制执行后面的case代码 var code int = 2; switch code { case 1 : fmt.Println(1); case 2 : fmt.Println(2); case 3 : fmt.Println(3); case 4 : fmt.Println(4); default: fmt.Println(0); } //调用函数 fmt.Println(sum2(10,20)); //调用返回多个值的函数 su,minus := sumAndMinus(10,20); fmt.Println(su,minus); //调用变参函数 prints(5,1); //调用传值函数 num := 10; add1(num); fmt.Println(num); //调用传指针函数,这里num的值也跟着改变了 add2(&num); fmt.Println(num); //调用defer testDefer();}//声明一个函数,返回类型intfunc sum2(num1 int,num2 int) int { return num1 + num2;}//函数返回多个值func sumAndMinus(num1 int,num2 int) (int,int) { return num1 + num2,num1 - num2;}//变参函数func prints(arg ...int) { //arg是一个slice for _,v := range arg { fmt.Println(v); }}//传值函数func add1(n int) int { n++; return n;}//传指针func add2(n *int) int { (*n)++; return (*n);}//defer延迟语句,当函数执行到最后时,这些defer语句会按照逆序执行,最后该函数返回。func testDefer() { for i := 0; i < 5; i++ { defer fmt.Print(i); }}
总结
以上是内存溢出为你收集整理的go流程控制与函数全部内容,希望文章能够帮你解决go流程控制与函数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)