首页 > 服务端语言 > Go 入门教程 > 22 Go 语言中的函数

Go 语言中的函数

本文来介绍 Go 语言中的 函数 。Go 语言的函数和其它语言的用法类似,但是 Go 语言中所有东西都是 变量 ,包括函数,函数在 Go 语言中也是 变量的一种 ,所以函数名的命名规则和变量名相同,同时这个和我们后面要讲解的 函数式编程 有关,目前本文仅介绍 Go 语言中函数的 声明使用

1. 函数的定义和使用

Go 语言中,通过 func 关键字来声明和定义函数。Go 语言和 C 语言不同,Go 语言函数的声明和定义是一起的,不存在先声明在定义,且声明时不分前后均可 互相调用

代码示例

package main

import "fmt"

func print(s string) {
    fmt.Println(s)
}

func main() {
    print("Hello Codey !")

}
  • 第 5 行:声明并定义一个名叫 print 的函数,函数接收一个 string 类型的参数;
  • 第 6 行:函数体。一个输出接收进来参数的值的语句;
  • 第 9 行:声明并定义了一个叫main的函数。Go 语言中程序的入口就时 main 函数,所有的程序都以main 函数作为入口;
  • 第 10 行:调用 print 函数,传入参数"Hello Codey !"。

执行结果

图片描述

2. 函数的返回值

Go 语言的函数的返回值也有些特殊,它可以一次返回多个返回值,Go 语言中如果是单返回值,可以直接在函数声明的括号后面增加数据类型,代码示例如下:

func Sum(a, b int) int //声明并定义一个返回值为int数据类型的函数

若要返回多个返回值,则需要用括号包裹返回值,并使用,隔开所有返回值,代码示例如下:

func Sum(a, b int) (int,string) //声明并定义一个返回值为int和string数据类型的函数

返回的方式有两种。一种是用 return 关键字加返回值直接返回,一种是 声明返回值变量 ,使用返回值变量直接返回。

2.1 使用 return+ 返回值返回

和其它语言不同的是,Go 语言可以一次返回多个值,多个值直接跟在 return 关键字之后,使用,隔开即可。

代码示例

package main

import "fmt"

func SumAndProduct(a, b int) (int, int) {
    c := a + b
    d := a * b
    return c, d //同时返回c和d两个变量
}

func main() {
    sum, product := SumAndProduct(1, 2) //接收多返回值的函数时,也需要用逗号隔开变量
    fmt.Println("a + b =", sum)
    fmt.Println("a * b =", product)
}

执行结果

图片描述

2.2 使用返回值变量返回

Go 语言还能直接在返回值处声明变量,这个变量的作用域是整个函数,并且会在 return 的时候直接返回。

代码示例

package main

import "fmt"

func SumAndProduct(a, b int) (c int, d int) {
    c = a + b //因为c和d函数返回值处已经定义了,可以直接使用
    d = a * b
    return //直接返回,c和d自动传出去
}

func main() {
    sum, product := SumAndProduct(1, 2) //接收多返回值的函数时,也需要用逗号隔开变量
    fmt.Println("a + b =", sum)
    fmt.Println("a * b =", product)
}

执行结果

图片描述

3. 小结

本文主要介绍了 Go 语言中函数的定义和使用。主要就是和其它语言比起来,Go 语言的函数更加强大,能够多参数返回,返回值更是能直接写做变量,且作用域为整个函数。

本文来自互联网用户投稿,不拥有所有权,该文观点仅代表作者本人,不代表本站立场。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。
© 2023 PV138 · 站点地图 · 免责声明 · 联系我们 · 问题反馈