Go函数

作者: MrSYLong | 来源:发表于2018-08-29 23:25 被阅读5次
    package main
    
    import "fmt"
    
    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 "/":
            // r不使用
            q, _ := divTwo(a, b)
            return q, nil
        default:
            return 0, fmt.Errorf("unsuported operation: %s", op)
        }
    }
    
    // 13 / 3 = 4 ... 1
    func div(a, b int) (int, int) {
        return a / b, a % b
    }
    
    func divTwo(a, b int) (q, r int) {
        return a / b, a % b
    }
    
    func divThree(a, b int) (q, r int) {
        q = a / b
        r = a % b
        return
    }
    
    // 可变参数列表
    func sum(numbers ...int) int {
        s := 0
        for i := range numbers {
            s += numbers[i]
        }
        return s
    }
    
    // 返回值类型写在最后面 
    // 函数可以返回多个值
    // 函数返回多个值时可以起名字
    // 仅用于非常简单的函数
    // 对于调用者而言没有区别
    
    func main() {
        if reslut, err := eval(3, 4, "x"); err != nil {
            fmt.Println("Error:", err)
        } else  {
            fmt.Println(reslut)
        }
    
        fmt.Println(div(13, 3))
    
        q, r := divTwo(13, 3)
        fmt.Println(q, r)
    
        fmt.Println(sum(1, 2, 3, 4, 5))
    }
    

    相关文章

      网友评论

          本文标题:Go函数

          本文链接:https://www.haomeiwen.com/subject/qtulwftx.html