zoukankan      html  css  js  c++  java
  • go流程控制与函数

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

      

  • 相关阅读:
    连通图是不是欧拉图
    P1127 词链 题解
    ClickHouse的JDBC连接
    ClickHouse集群搭建和使用
    ClickHouse引擎
    ClickHouse 的安装和使用
    SNMP3安装
    解决springboot打不出业务log
    如何用电脑下载微信视频号中的视频?
    【Swing】如何打开文件选择对话框,选择文件
  • 原文地址:https://www.cnblogs.com/jkko123/p/6768988.html
Copyright © 2011-2022 走看看