Go语言函数返回值

    /    2018-12-10

返回值定义

返回值通过使用返回语句返回。可以返回任意类型。返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行。

Go语言函数可以有零个或多个返回值,可以返回多个不同类型的结果。当函数有返回值 return 语句必须要写,否则编译器会报错。

Go语言在定义函数时返回值可以被命名,命名返回值的作用域是整个函数体就像定义在函数体内的局部变量。在 return 语句中,无需显示的返回这些值,Go 会自动将其返回。

返回值应用

1. 零返回值

package main

import (
    "fmt"
)

func oldboy() {
    fmt.Println("老男孩IT教育,只培养技术精英。")
}

func main() {
    oldboy()
}

2. 多返回值

package main

import (
    "fmt"
)

func course(name string) (string, string, string, string, string) {
    return "Linux", "Python", "Golang", "Java", "DBA"
}

func main() {
    fmt.Println(course("oldboy"))
}

3. 显式返回值,return 语句后必须带返回的结果

package main

import (
    "fmt"
)

func sum(x, y int) int {
    return x + y
}

func main() {
    fmt.Println(sum(1, 2))
}

4. 隐式返回值,只有 return 语句自动返回命名返回值

package main

import (
    "fmt"
)

func sum(x, y int) (z int) {
    z = x + y
    return
}

func main() {
    fmt.Println(sum(1, 2))
}

巧用return

第一种,无返回值函数,在内部任何程序执行片段使用return ,直接会跳出该函数,return下面的程序片段都不会再执行。

package main

import (
    "fmt"
)

func test() {
    for i := 10; i < 100; i++ {
        fmt.Printf("%v\n", i)
        if i == 11 {
            return
        }
    }
}

func main() {
    test()
}

第二种,有返回值函数,在内部任何程序执行片段使用return,它下面的程序片段都不会再执行,但是程序结尾必须以return结束,否则程序报错。

package main

import (
    "fmt"
)

func test() int {
    i := 0
    for i = 10; i < 100; i++ {
        fmt.Printf("%v\n", i)
        if i == 11 {
            return i
        }
    }
    return i
}

func main() {
    _ = test()
}

(12)

分享至