美文网首页
go 语言基础--函数

go 语言基础--函数

作者: scannme | 来源:发表于2020-10-24 21:31 被阅读0次

    1、函数

    和C语言类型,Go语言也有函数的概念,语法如下:

    //func 定义函数关键字
    //func_name 函数名称
    //arg1,arg2 函数入参,可以为空,也可以是多个
    //returnvlaue 函数返回值,可以是为空,也可以是多个
    func func_name(arg1,arg2 ..) returnvalue {
    }
    
    

    2 参数和返回值

    2.1 返回值

    go 语言可以返回零个或多个值.

    package main
    
    import "fmt"
    
    func swap(x, y string) (string, string){
        return y, x
    }
    
    func swap2(x, y string) (string, string) {
        return y,x
    }
    
    func main() {
        a, b := swap("hello", "world")
    
        fmt.Println(a, b)
    
        a, b = swap2("test1", "test2")
    
        fmt.Println(a,b)
    }
    

    当函数有多个返回值时,而我们有不处理某个返回值时,可以在使用_来取代返回值,不进行处理

    func blank()  (int, int) {
        a := 2
        b := 3
    
        return a, b
    }
    
    func main() {
        a, _ := blank()package main
        fmt.Println(a)
    }
    
    

    2.2 入参

    go语言的入参和C语言基本一致,分为按值专递(call by value)和按引用传递(call by reference). 按值传递的是参数的副本,对这个值修改不会影响函数体外参数的值,按引用传递在函数内的修改会影响到函数体外的值。

    
    import "fmt"
    
    func argtest(a int, p  *int)  {
    
        a = a + 2
        *p = 6
    }
    func main () {
        a := 2
        b := 4
    
        fmt.Println(a, b)
        argtest(a, &b)
        fmt.Println(a, b)
    }
    

    输出:

    2 4
    2 6

    3 函数作为参数

    函数可以作为其他函数参数进行传递,然后在其他函数内调用执行。

    import (
        "fmt"
    )
    
    func main() {
        callback(1, Add)
    }
    
    func Add (a , b int) {
        fmt.Printf("The sum of %d and %d is:%d\n", a, b, a + b)
    }
    
    func callback(y int ,f func(int, int)) {
        f(y, 2)
    }
    
    

    相关文章

      网友评论

          本文标题:go 语言基础--函数

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