Go语言函数返回值

幸运草
幸运草
幸运草
1033
文章
3
评论
2020年4月19日22:15:15
评论
186

Go语言函数返回值

返回值定义

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

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("%vn", 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("%vn", i)
        if i == 11 {
            return i
        }
    }
    return i
}

func main() {
    _ = test()
}

特别声明:以上文章内容仅代表作者本人观点,不代表变化吧观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。

转载请注明:{{title}}-变化吧
  • 赞助本站
  • 微信扫一扫
  • weinxin
  • 赞助本站
  • 支付宝扫一扫
  • weinxin
幸运草
Go语言中的常量 函数代码

Go语言中的常量

1 概述 常量,一经定义不可更改的量。功能角度看,当出现不需要被更改的数据时,应该使用常量进行存储,例如圆周率。从语法的角度看,使用常量可以保证数据,在整个运行期间内,不会被更改。例如当前处理器的架构...
Go语言的接口 函数代码

Go语言的接口

Go语言-接口 在Go语言中,一个接口类型总是代表着某一种类型(即所有实现它的类型)的行为。一个接口类型的声明通常会包含关键字type、类型名称、关键字interface以及由花括号包裹的若干方法声明...
Go语言支持的正则语法 函数代码

Go语言支持的正则语法

1 字符 语法 说明 . 任意字符,在单行模式(s标志)下,也可以匹配换行 字符类 否定字符类 d Perl 字符类 D 否定 Perl 字符类 ASCII 字符类 否定 ASCII 字符类 pN U...
Go语言的包管理 函数代码

Go语言的包管理

1 概述 Go 语言的源码复用建立在包(package)基础之上。包通过 package, import, GOPATH 操作完成。 2 main包 Go 语言的入口 main() 函数所在的包(pa...