Go语言基础之函数定义

Go语言基础之函数定义

函数是组织好的、可重复使用的、用于执行指定任务的代码块。本文介绍了Go语言中函数的相关内容。

Go语言中支持函数、匿名函数和闭包,并且函数在Go语言中属于“一等公民”。

一、函数定义

Go语言中定义函数使用func关键字,具体格式如下:

func 函数名(参数)(返回值){
    函数体
}

其中:

  • 函数名:由字母、数字、下划线组成。但函数名的第一个字母不能是数字。在同一个包内,函数名也称不能重名(包的概念详见后文)。
  • 参数:参数由参数变量和参数变量的类型组成,多个参数之间使用,分隔。
  • 返回值:返回值由返回值变量和其变量类型组成,也可以只写返回值的类型,多个返回值必须用()包裹,并用,分隔。
  • 函数体:实现指定功能的代码块。

我们先来定义一个求两个数之和的函数:

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

相同的参数类型和多个返回值变量类型相同省略写一个

函数的参数和返回值都是可选的,例如我们可以实现一个既不需要参数也没有返回值的函数:

func sayHello() {
    fmt.Println("Hello word")
}

二、函数定义方式

空函数

func empty(){

}

无参函数

func sayHello() {
    fmt.Println("Hello word")
}

有参函数

func getName(name string) {
    fmt.Println("name:", name)
}

返回值

func calc(x, y int) (int, int) {
    sum := x + y
    sub := x - y
    return sum, sub
}

匿名函数

func(参数)(返回值){
    函数体
}

三、函数的调用

定义了函数之后,我们可以通过函数名()的方式调用函数。 例如我们调用上面定义的两个函数,代码如下:

函数直接调用

func main() {
    sayHello()
    ret := calc(10, 20)
    fmt.Println(ret)
    // 函数调用
    
}

注意,调用有返回值的函数时,可以不接收其返回值。

函数当作参数调用

func main() {
    ret := calc(calc(10, 20),calc(30, 40))
    fmt.Println(ret)
}

函数返回值参与运算

func main() {
    ret := calc(30, 40) * 100 
    fmt.Println(ret)
}

四、总结

  1. 函数定义:func 函数名(参数)(返回值){ 函数体 }
  2. 函数可以分为:空函数,无参函数,有参函数,返回值函数,匿名函数
  3. 函数调用:函数名+()
  4. 函数实现具体的封装功能,使用函数的好处,解决程序冗余,实现可读,可扩展,减少重复造轮子,函数是一种思想而不是一种技术
posted @ 2021-10-16 15:14  RandySun  阅读(746)  评论(0编辑  收藏  举报