当前位置: 首页> 教育> 高考 > 手机编程免费软件app_青岛网络推广教程_seo首页优化_网络推广的方法有多选题

手机编程免费软件app_青岛网络推广教程_seo首页优化_网络推广的方法有多选题

时间:2025/8/24 2:25:54来源:https://blog.csdn.net/Coffeemaker88/article/details/144302380 浏览次数:0次
手机编程免费软件app_青岛网络推广教程_seo首页优化_网络推广的方法有多选题

函数式编程

函数与闭包

支持函数式编程的语言当中,函数是一等公民,参数、变量、返回值都可以是函数。

以 adder 为例,下例实现了一个函数式编程:

package mainimport "fmt"func adder() func(int) int {sum := 0return func(v int) int {sum += vreturn sum}
}func main() {a := adder()for i := 0; i < 10; i++ {fmt.Printf("1 + 2 + ... + %d = %d\n", i, a(i))}
}

结果为:

1 + 2 + ... + 0 = 0
1 + 2 + ... + 1 = 1
1 + 2 + ... + 2 = 3
1 + 2 + ... + 3 = 6
1 + 2 + ... + 4 = 10
1 + 2 + ... + 5 = 15
1 + 2 + ... + 6 = 21
1 + 2 + ... + 7 = 28
1 + 2 + ... + 8 = 36
1 + 2 + ... + 9 = 45

在函数体当中定义的 sum 就是一个闭包的概念:
在这里插入图片描述
上述整体被称作闭包,sum 作为局部变量会被保存在闭包当中。

正统的函数式编程写法如下:

type iAdder func(int) (int, iAdder)func adder2(base int) iAdder {return func(v int) (int, iAdder) {return base + v, adder2(base + v)}
}
关键字:手机编程免费软件app_青岛网络推广教程_seo首页优化_网络推广的方法有多选题

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: