文档章节

Go的闭包

刘地
 刘地
发布于 2013/07/29 21:30
字数 191
阅读 80
收藏 0
package main

func A(i int) (func() int) {
	return func() int {
		return i
	}
}

func main() {
	var a, b func()int
	var c [3]func()int
	
	i:=0
	a=func() int {
		return i
	}
	b=func() int {
		return i
	}
	println(a(),b())
	i=1
	println(a(),b())
	
	a=A(2)
	b=A(3)
	println(a(),b())
	
	for i:=4;i<7;i++{
		c[i-4]=func() int {
			return i
		}
	}
	println(c[0](),c[1](),c[2]())
}
// 0 0
// 1 1
// 2 3
// 7 7 7

闭包内引用的变量不是拷贝的值,而是直接使用该变量(可以理解为引用),局部变量也是一样的
函数参量每次调用都是不同的(这也是递归的必然要求),因此可以安全的利用函数参量产生不同的闭包
函数的(多)返回值可以直接传递给其他函数用于调用

© 著作权归作者所有

共有 人打赏支持
刘地
粉丝 100
博文 52
码字总数 69858
作品 1
朝阳
Swift 闭包

Swift.png 闭包 闭包是保存一段代码块,可以在代码中传递和是使用(类似Block) 闭包和block类似 闭包的表达式如下 闭包的函数体部分由关键字 in 引入。该关键字表示闭包的参数和返回值类型定...

追逐iOS
2017/11/27
0
0
【JavaScript】关于闭包

1、闭包是函数的代码在运行过程中的一个动态环境,是一个运行期的、动态的概念。 闭包(又称“词法闭包”或“函数闭包”)是一个包含了非本地变量引用环境的函数。 2、变量在语法分析阶段被初...

Aram
2013/03/17
0
0
闭包block多种应用方式

闭包是一个十分强大的功能,灵活多变,便于使用;实际上闭包是一种匿名的函数. 其类型和对应的函数类型保持一致. 使用闭包,我们可以动态的改变函数或方法中的代码,从而适应不同环境下的要求. 1...

法斗斗
2016/06/22
4
0
Swift2.0语言教程之闭包

Swift2.0语言教程之闭包 Swift2.0语言闭包 闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift中的闭包与C和Objective-C中的代码块(blocks)以及其他一些编程语言中的Lambda函数比...

大学霸
2015/07/20
0
0
深入理解javascript原型和闭包(完结)

说明:   该教程绕开了javascript的一些基本的语法知识,直接讲解javascript中最难理解的两个部分,也是和其他主流面向对象语言区别最大的两个部分——原型和闭包,当然,肯定少不了原型链...

zh151832
2016/08/02
26
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 使用parent方式引用时 获取值属性方式默认@

采用官网提供的 引入依赖时,application.properties中的值变量,无法通过${}获取,这是由于Spring Boot 已经将字符方式调整为 <resource.delimiter>@</resource.delimiter>。故如果在,工程中...

翱翔fly
17分钟前
1
0
HTTPS证书验证流程及SSL证书生成步骤【附nginx开启https配置】

------------------------------------------------------------ HTTPS证书验证流程(极简化版) 1.客户端向服务端请求证书(server.crt) 2.服务端下发证书(server.crt) 3.客户端用预制的...

xiaomin0322
18分钟前
1
0
预编译sql语句和参数化sql能有效防止——sql注入攻击——

预编译和参数化处理sql原理类似: 参数化处理sql 是将参数进行了字符串化处理,把参数中的单引号,井号#,等都做了转义处理,进而在执行sql语句时不会被当做sql中的定界符和指定符来执行。 ...

fang_faye
19分钟前
1
0
springboot最全配置解释

​​​​​​​# ----------------------------------------# 核心属性# ----------------------------------------# 文件编码banner.charset= UTF-8# 文件位置banner.locati...

废柴大叔
20分钟前
72
1
(大致了解下)从单机到2000万QPS: 知乎Redis平台发展与演进之路

导读:知乎存储平台团队基于开源Redis 组件打造的知乎 Redis 平台,经过不断的研发迭代,目前已经形成了一整套完整自动化运维服务体系,提供很多强大的功能。本文作者是是该系统的负责人,文...

Ocean_K
27分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部