函数

返回一个参数

    func eval(a,b int, op string) int {
        switch op {
            case "+":
                return a+b
            case "-":
                return a-b
            case "*":
                return a*b
            case "/":
                return a/b
            default:
                painc("请选择正确的计算符号:" + op)
        }
    }

    func main(){
        fmt.Println(eval(3,4,"*"))   //结果输出为12
    }

返回多个参数

//除余算法   13/3  等于 4余1
    func div(a,b int) (int,int) {
        rerutn a / b, a % b
    }
//除余算法给返回参数命名 q是商 r是余数  
    func div(a,b int) (q, r int) {
        rerutn a / b, a % b
    }

    func main(){
        fmt.Println(div(13,3))   //结果输出为4  1
        //有返回参数命名的用法
        q ,r := div(13,3)  //q与r也可随意替换成其他字符
        fmt.Println(q,r)   //结果输出为4  1
        //抛弃一个返回值 把要抛弃的返回值变成下划线 _
        q ,_ := div(13,3) 
        fmt.Println(q)   //结果输出为4  
    }

返回参数以及报错,不中断执行(去掉painc)

    func eval(a,b int, op string) (int, error) {
        switch op {
            case "+":
                return a+b, nil
            case "-":
                return a-b, nil
            case "*":
                return a*b, nil
            case "/":
                return a/b, nil
            default:
                return 0 ,fmt.Errorf("请选择正确的计算符号: %s" , op)
        }
    }

    func main(){
        fmt.Println(eval(3,4,"X"))   //结果输出为  0 请选择正确的计算符号:X  (不会中断执行)
        //判断是否出错
        if result, err := eval(3,4,"X"); err != nil {
            fmt.Println("Error:", err) 
        }else {
         fmt.Println(result) 
        }
    }