美文网首页
第02天(函数、工程管理)_01

第02天(函数、工程管理)_01

作者: lucas777 | 来源:发表于2019-12-02 08:53 被阅读0次

    01_无参无返回值函数的使用.go

    package main //必须
    
    import "fmt"
    
    func main() {
        //无参无返回值函数的调用: 函数名()
        MyFunc()
    }
    
    //无参无返回值函数的定义
    func MyFunc() {
        a := 666
        fmt.Println("a = ", a)
    }
    

    02_普通参数列表.go

    package main //必须
    
    import "fmt"
    
    //有参无返回值函数的定义, 普通参数列表
    //定义函数时, 在函数名后面()定义的参数叫形参
    //参数传递,只能由实参传递给形参,不能反过来, 单向传递
    func MyFunc01(a int) {
        //a = 111
        fmt.Println("a = ", a)
    }
    
    func MyFunc02(a int, b int) {
        fmt.Printf("a = %d, b = %d\n", a, b)
    }
    
    func MyFunc03(a, b int) {
        fmt.Printf("a = %d, b = %d\n", a, b)
    }
    
    func MyFunc04(a int, b string, c float64) {
    }
    
    func MyFunc05(a, b string, c float64, d, e int) {
    }
    
    func MyFunc06(a string, b string, c float64, d int, e int) {
    }
    
    func main() {
        //有参无返回值函数调用:  函数名(所需参数)
        //调用函数传递的参数叫实参
        MyFunc01(666)
    
        MyFunc02(666, 777)
    }
    

    03_不定参数类型.go

    package main //必须
    
    import "fmt"
    
    func MyFunc01(a int, b int) { //固定参数
    
    }
    
    //...int类型这样的类型, ...type不定参数类型
    //注意:不定参数,一定(只能)放在形参中的最后一个参数
    func MyFunc02(args ...int) { //传递的实参可以是0或多个
        fmt.Println("len(args) = ", len(args)) //获取用户传递参数的个数
        for i := 0; i < len(args); i++ {
            fmt.Printf("args[%d] = %d\n", i, args[i])
        }
    
        fmt.Println("==========================================")
    
        //返回2个值,第一个是下标,第二个是下标所对应的数
        for i, data := range args {
            fmt.Printf("args[%d] = %d\n", i, data)
        }
    
    }
    
    func main01() {
        //MyFunc01(666, 777)
    
        MyFunc02()
        fmt.Println("+++++++++++++++++++++++++++++++++++++++++++++++")
        MyFunc02(1)
        fmt.Println("+++++++++++++++++++++++++++++++++++++++++++++++")
        MyFunc02(1, 2, 3)
    }
    
    //固定参数一定要传参,不定参数根据需求传递
    func MyFunc03(a int, args ...int) {
    }
    
    //注意:不定参数,一定(只能)放在形参中的最后一个参数
    //func MyFunc04(args ...int, a int) {
    //}
    
    func main() {
        MyFunc03(111, 1, 2, 3)
    }
    

    04_不定参数传递.go

    package main //必须
    
    import "fmt"
    
    func myfunc(tmp ...int) {
        for _, data := range tmp {
            fmt.Println("data = ", data)
        }
    }
    
    func myfunc2(tmp ...int) {
        for _, data := range tmp {
            fmt.Println("data = ", data)
        }
    }
    
    func test(args ...int) {
        //全部元素传递给myfunc
        //myfunc(args...)
    
        //只想把后2个参数传递给另外一个函数使用
        myfunc2(args[:2]...) //args[0]~args[2](不包括数字args[2]), 传递过去
        myfunc2(args[2:]...) //从args[2]开始(包括本身),把后面所有元素传递过去
    }
    
    func main() {
        test(1, 2, 3, 4)
    }
    

    05_一个返回值.go

    package main //必须
    
    import "fmt"
    
    //无参有返回值:只有一个返回值
    //有返回值的函数需要通过return中断函数,通过return返回
    func myfunc01() int {
        return 666
    }
    
    //给返回值起一个变量名,go推荐写法
    func myfunc02() (result int) {
    
        return 666
    }
    
    //给返回值起一个变量名,go推荐写法
    //常用写法
    func myfunc03() (result int) {
    
        result = 666
        return
    }
    
    func main() {
        //无参有返回值函数调用
        var a int
        a = myfunc01()
        fmt.Println("a = ", a)
    
        b := myfunc01()
        fmt.Println("b = ", b)
    
        c := myfunc03()
        fmt.Println("c = ", c)
    }
    

    相关文章

      网友评论

          本文标题:第02天(函数、工程管理)_01

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