Go 语言基础语法和常用特性解析2 | 青训营

40 阅读2分钟

函数和方法

函数的定义

函数是基于功能或逻辑进行封装的可复用的代码结构。Go 语言中 函数 也是一种数据类型,有内存地址,且未被初始化的函数的值为 nil。函数由函数名、参数和返回值组成,使用 func 关键字定义,{} 中定义函数体。一般写法为:

func name(parameter-list) (result-list) {
    body
}

在 Go 语言中,函数可以分为两种:1、带有名字的普通函数;2、没有名字的匿名函数

函数参数

Go 中函数的参数可以是不定长的,函数可以没有参数或接受多个参数。

返回值

Go 函数可以有一个或多个返回值,其返回值有两种定义方法:

1、当只有一个返回值时可以将括号省略,有多个返回值时需要使用括号,并且括号中的数据类型与函数体中 return 关键字返回的变量一一对应。参数类型如果相同,可以只在最后一个参数后面跟上参数类型,其他可以省略。

2、将返回值在函数定义的时候初始化,而不是在函数体内初始化(函数体中不要再使用 := 或者 var 定义返回变量),并且可以省略 return 关键字后的返回值变量名。

匿名函数

也叫闭包函数,当函数只在某一处会使用,不会在其他地方使用时,为了避免函数名泛滥,可以定义匿名函数。匿名函数调用时参数在 {} 后面传递,使用 () 包裹。闭包是一个函数值,它引用了其函数体之外的变量。该函数可以访问并赋予其引用的变量的值,换句话说,该函数被这些变量“绑定”在一起。

func fibonacci() func() int {
    fn_0 := 0
    fn_1 := 1
 
    return func() int {
        fn_1 = fn_1 + fn_0
        fn_0, fn_1 = fn_1, fn_0
        return fn_1
    }
}

总结

函数即将一段功能复杂、很长的一段代码封装成多个代码片段,在编程中函数的应用是十分基础的,函数的应用有助于提高代码可读性和可维护性。