type
status
date
slug
summary
tags
category
icon
password
AI summary

Go语言基础之函数


1. 什么是函数

函数是 Go 语言中实现代码复用的重要工具,它将一组执行特定任务的代码封装起来,可以通过函数名多次调用。

函数的特点

  1. 代码复用:相同的代码逻辑可以通过调用函数多次执行。
  1. 模块化:将代码分解为多个函数,提升代码的可读性和可维护性。
  1. 避免冗余:将重复的代码提取为函数,减少代码重复。

2. 函数的定义与调用

2.1 定义函数

在 Go 语言中,函数的定义格式如下:
  • func:声明函数的关键字。
  • 函数名:函数的名称,遵循标识符命名规则。
  • 参数列表:函数的输入参数,可以有零个或多个参数。
  • 返回值列表:函数返回的结果,可以有零个或多个返回值。
  • 函数体:实现函数逻辑的代码。

2.2 调用函数

函数定义后,可以通过 函数名(参数) 的形式调用函数。
示例代码:

2.3 返回多个值

Go 语言支持函数返回多个值。
示例代码:

3. 参数类型

3.1 参数传递

函数参数的传递分为以下两种:
  1. 值传递(默认):传递参数的副本,修改副本不会影响原变量。
  1. 引用传递:传递参数的内存地址,修改参数会影响原变量。
示例代码:

3.2 可变参数

Go 语言支持使用 ... 语法来定义可变参数的函数。
示例代码:

4. 匿名函数与闭包

4.1 匿名函数

匿名函数是没有名称的函数,可以直接定义并调用。
示例代码:

4.2 闭包

闭包是指函数内部引用了外部作用域的变量,形成一个封闭的环境。
示例代码:

5. defer 关键字

defer 用于延迟执行函数调用,通常用于资源释放操作。

5.1 defer 的执行顺序

defer 语句会在函数返回前按照 后进先出 的顺序执行。
示例代码:
输出结果:

6. 高阶函数

高阶函数是指将函数作为参数传递或返回的函数。
示例代码:

7. 总结

  1. 函数是 Go 语言中代码复用的基础工具。
  1. 函数可以有多个返回值,支持可变参数和闭包。
  1. defer 关键字可以用于延迟执行操作。
  1. 高阶函数为函数提供了更多灵活性。
熟练掌握函数的定义和用法,有助于编写更加模块化、清晰的代码。

练习题

以下是三道关于Go语言函数的练习题,用于加添实际使用函数的熟练。

练习题1:计算一组数值的平均值

描述:写一个函数,接收一个整型数组,返回其中所有元素的平均值。
源码离线演示

练习题2:写一个自增函数

描述:写一个函数,它返回一个自增函数。每次调用该自增函数,都返回次序值加一。
源码离线演示

练习题3:将函数作为参数传递

描述:写一个函数 operate ,它接收一个函数参数,调用并执行这个函数。此外,实现两个基本函数,例如加法和减法,将它们传递给 operate
源码离线演示
 
指针Map