函数 1年前

编程语言
375
函数

Go语言函数

函数在Go语言中,是一等“公民”,和其它语言中的函数的声明和定义是类似的。

函数就是一段功能代码的包装,并且起个名字,有输入参数和输出,通过函数的名字就可以调用了

Go语言中,函数之所以被称作“一等公民”,是因为Go语言的函数,可以像变量一样使用

函数可以赋值给一个变量,可以当作参数传递。

本小节只介绍函数的声明和定义以及使用

1 函数的定义

有的编程语言,比如 C/C++ ,函数的声明和定义是分开的。

但是Go语言的函数声明和定义是在一起的,而且不分先后,都可以互相调用。

Go语言函数的定义的语法如下:

func  function_name(参数) 返回类型 {
    //函数体
}

我们还是以永恒的 "hello,world" 为例子,声明一个函数,打印一句 "hello,world"

示例如下:

package main

import "fmt"

//1 定义了一个函数show
func show()  {
    fmt.Println("hello,world")
}

func main() {
    //2 调用
    show()
}

//输出: hello,world

定义函数使用关键字 func ,后面跟函数的名字 , 名字后面跟上() ,接着 { } 中就是函数体

可以在函数体中写上我们的代码了。

上面,可以看出,定义了一个函数 show ,函数体中打印了一句 hello,world

2 有参数的函数

上面的 show() 函数是无参无返回值的

  • 无参数:所谓无参就是小括号中不用传参数
  • 无返回值:就是函数执行完后,没有返回值

下面我们定义一个函数,传入 2 个数,返回其和

代码示例如下:

package main

import "fmt"

//定义一个函数add
//输入两个数 a , b
//返回两个数的和
func add(a int, b int) int {
    return a + b
}

func main() {
    //调用 add 函数,并接收值
    sum := add(10,20)

    fmt.Println( sum )    
}

//输出: 30

3 多个返回值的函数

上面的例子返回的是一个值 ,其它很多其它编程语言也是只能返回一个值,比如 C , C++ , Java 等

如果想要返回多个值,就得定义一个类或者结构体,返回一个结构体。

但是Go语言函数,支持返回多个值。

语法如下:

func func_name(参数) (返回类型1 , 返回类型2, ... ) {
    
}
  • 使用 func 关键字定义函数
  • 返回类型如果有多个,需要用小括号( ) 括起来,里面写个返回值的类型,有几个写几个

下面的例子:定义一个函数输入 2 个数,分别返回 2个数的和与差,如下

package main

import "fmt"

//返回两个数的和与差
func addAndSub(a int , b int) (int,int) {
    return a + b , a - b
}

func main() {
    m , n := addAndSub(8,2)
    
    fmt.Println(m,n)
}

//输出:10 6

上面的例子, m , n := addAndSub(8,2) , addAndSub 函数返回了 2 个值 ,分别用 m , n 接收

如果我们只想接收其中一个,可以使用 _ 丢弃, 如:m, _ := addAndSub(8,2) , 此时 m 为 10

4 小结

本小节主要介绍了Go语言的函数的定义和使用,总结如下:

  • Go语言声明和定义函数是在一起的,不分先后,都可以互相调用

  • 定义函数使用 func 关键字,后面跟函数名 , 再接着小括号( ) ,后面是返回值类型

    如定义一个函数:func add(a int, b int) int { }

  • Go语言支持函数返回多个值,语法为:func AddAndSub(a int ,b int) (int, int) { }

  • 返回多个值时,函数的定义后面的返回值类型,要写在括号( )中 ,只有一个返回值,可以省略

  • 如果不想接收某个返回值,可以使用 _ 丢弃。如 m , _ := addAndSub()

image
EchoEcho官方
无论前方如何,请不要后悔与我相遇。
1377
发布数
439
关注者
2223052
累计阅读

热门教程文档

Dart
35小节
Java
12小节
Golang
23小节
Vue
25小节
Gin
17小节