package main; import ( "fmt" ); func main() { isRun := true; //条件判断 if isRun { fmt.Printf("run "); } else { fmt.Printf("not run "); } //多条件判断 a := 15; if a > 0 && a < 10 { fmt.Printf("0-10 "); } else if a > 10 && a < 20 { fmt.Printf("10-20 "); } else if a > 20 { fmt.Printf(">20 "); } //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, 4, 3, 2, 1); //调用传值函数 num := 10; add1(num); fmt.Println(num); //调用传指针函数,这里num的值也跟着改变了 add2(&num); fmt.Println(num); //调用defer testDefer(); } //声明一个函数,返回类型int func 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); } }