6.5 高阶函数

本篇学习 Go 高阶函数的基本思路,并能使用函数作为值实现菜单分发。

字数 469 字

高阶函数

概念说明

高阶函数是“把函数当作值来使用”的函数。
常见形式包括:函数作为参数传入、函数作为返回值返回。
在业务中常用于策略切换、回调处理和行为分发。

语法/规则

  1. 函数可以赋值给变量,也可以存进 map、切片等容器。
  2. 不同函数要放在同一个容器里,签名必须一致。
  3. 从 map 取出函数后,调用前应先判断是否存在,避免运行时错误。
  4. 当分支逻辑较多时,用“编号 -> 函数”的映射通常比多层 if 更清晰。

菜单分发示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package main

import "fmt"

func login() {
	fmt.Println("登录")
}

func userCenter() {
	fmt.Println("个人中心")
}

func logout() {
	fmt.Println("注销")
}

func main() {
	actions := map[int]func(){
		1: login,
		2: userCenter,
		3: logout,
	}

	choice := 2 // 模拟用户输入
	if action, ok := actions[choice]; ok {
		action()
	} else {
		fmt.Println("无效操作")
	}
}

输出结果:

1
个人中心

常见错误

  1. 直接调用 actions[choice]() 而不判断是否存在,可能触发 panic
  2. map 中函数签名不一致,导致无法放入同一容器。
  3. 误把“高阶函数”理解成“函数很多”,而不是“函数作为值参与传递”。
使用 Hugo 构建
主题 StackJimmy 设计 由 Hobin 魔改
载入天数...载入时分秒...
发表了 0 篇文章 · 发表了 46 篇笔记 · 总计 2 万 5 千字(其中笔记 25104 字)