文档章节

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
用9种办法解决 JS 闭包经典面试题之 for 循环取 i

闭包 正确的说,应该是指一个闭包域,每当声明了一个函数,它就产生了一个闭包域(可以解释为每个函数都有自己的函数栈),每个闭包域(Function 对象)都有一个 function scope(不是属性),function ...

Jack088
12/10
0
0
闭包block多种应用方式

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

法斗斗
2016/06/22
4
0
swift4.1 系统学习十一 闭包

// // main.swift // swift11(闭包) // // Created by iOS on 2018/10/10. // Copyright © 2018年 weiman. All rights reserved. // import Foundation /* 闭包 闭包是swift中比较重要的一部......

小曼Study
10/10
0
0
Swift2.0语言教程之闭包

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

大学霸
2015/07/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
13
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
19
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
19
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
9
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
今天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部