Golang函数指针和闭包:使用方法指南
作者:WarmHope
时间:2025-05-22
浏览:2
Golang函数指针和闭包:使用方法指南函数指针概念函数指针是指向函数地址的变量。可以使用*funcType语法创建函数指针,其中funcType是函数签名。示例//定义一个函数类型typeMyFuncTypefunc(int)//创建一个函数指针varmyFuncPtrMyFuncType=func(xint){fmt.Println(x)}用法函数指针可以通过解引用运算符*来间接调用。//调用函数指针(*myFuncPtr)(10)//输出
本文目录

Golang 函数指针和闭包:使用方法指南
函数指针
概念
函数指针是指向函数地址的变量。可以使用 *funcType 语法创建函数指针,其中 funcType 是函数签名。
示例
// 定义一个函数类型
type MyFuncType func(int)
// 创建一个函数指针
var myFuncPtr MyFuncType = func(x int) {
fmt.Println(x)
}用法
函数指针可以通过解引用运算符 * 来间接调用。
// 调用函数指针 (*myFuncPtr)(10) // 输出 10
闭包
概念
闭包是一种函数,它引用了定义它所在的函数作用域之外的变量。它允许函数访问在不同作用域中定义的变量。
示例
// 外部作用域
i := 0
// 定义一个闭包
myClosure := func() {
i++
fmt.Println(i)
}用法
闭包可以通过调用闭包函数来使用。
// 尽管外部作用域的 i 现在是 1,但闭包仍然引用其原始值 0 myClosure() // 输出 0 i = 2 myClosure() // 输出 1
实战案例:计算任意数量的数字之和
问题
编写一个函数,给定任意数量的数字,计算它们的总和。
解决方案
我们可以使用函数指针和闭包来动态生成计算特定数量数字之和的函数。
func sum(numbers ...int) func() int {
// 闭包捕获了 numbers 变量
total := 0
return func() int {
for _, num := range numbers {
total += num
}
return total
}
}
func main() {
// 创建并调用计算三个数字之和的函数
mySum := sum(1, 2, 3)
fmt.Println(mySum()) // 输出 6
}
作者最新文章
sql条件判断字符串不包含某个字符串的方法详解
2026-10-13 17:39
漫蛙漫画官网
2026-10-13 13:19
漫蛙官网入口免费下载安装最新版
2026-10-13 13:18
漫蛙漫画登录页面在哪
2026-10-13 13:15
Photoshop自定义图层样式的保存、导入与管理技巧
2026-10-05 14:17
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































