首页 > 其他分享 >go语言的内外函数(闭包结构)

go语言的内外函数(闭包结构)

时间:2022-11-16 20:49:08浏览次数:39  
标签:闭包 外层 函数 r2 fmt Println go r1

package main

import "fmt"

/*
一个外层函数中,有内层函数,该函数中,会操作外层函数的局部变量
并且该外层函数的返回值就是这个内层函数
这个内层函数和外层函数的局部变量,统称为闭包结构
局部变量的生命周期就会发生改变,正常的局部变量会随着函数的调用而创建,随着函数的结束而销毁
但是闭包结构中的外层函数的局部变量并不会随着外层函数的结束而销毁,因为内层函数还在继续使用
*/
func main() {
r1 := insert()
fmt.Println("r1", r1())
fmt.Println("r1", r1())
fmt.Println("r1", r1())
r2 := insert()
fmt.Println("r2", r2())
fmt.Println("r2", r2())
fmt.Println("r2", r2())
fmt.Println("r1", r1())
fmt.Println("r1", r1()) //r1并未销毁
fmt.Println("r2", r1())
fmt.Println("r2", r1())
}
func insert() func() int { //外层函数
i := 0
fun := func() int { //内层函数
i++
return i
}
return fun
}

 

标签:闭包,外层,函数,r2,fmt,Println,go,r1
From: https://www.cnblogs.com/15078480385zyc/p/16897419.html

相关文章

  • MongoDB搭建与应用
    一、单机搭建1、安装与启动#1.下载社区版MongoDB4.1.3#下载地址:https://www.mongodb.com/download-center#communitywgethttps://fastdl.mongodb.org/linux/mon......
  • C++走向远洋——34(友元函数,成员函数和一般函数的区别)
    */*Copyright(c)2016,烟台大学计算机与控制工程学院*Allrightsreserved.*文件名:youyuan.cpp*作者:常轩*微信公众号:Worldhello*完成日期:2016年4月10日*版本......
  • 12-Go语言进阶-02
    并发编程并发、并行并发:同一时间段,两个程序轮流执行。并行:两个程序同时执行,需要有多核CPU的支持才能实现。并行不一定就比并发速度快,因为线程或进程之间的通信开销很......
  • 内联函数inline
    先说自己的理解:内联函数就是函数形式的宏定义使用#define宏定义时,语句的规范并没有得到及时调试,有时候错在哪里都不知道,当宏定义的行数多了起来时,这种影响更加显著,所以采......
  • postgresql函数:定期删除模式下指定天数前的表数据及分区物理表
    一、现有函数--1、现有函数调用selectods.deletePartitionIfExists('fact_ship'||'_'||to_char(CURRENT_DATE-INTERVAL'2month','yyyymmdd'));--2、函数内容CREAT......
  • Django Celery RabbitMQ访问被拒绝(403) ACCESS_REFUSED
    报错代码:(403)ACCESS_REFUSED-LoginwasrefusedusingauthenticationmechanismPLAI(省略) 解决方案:    在rabbitmq中注册用户具体代码实现:列出用户rabbitm......
  • mongodb绘制多边形区域
    拾取坐标地址:http://api.map.baidu.com/lbsapi/getpoint/index.html根据坐标绘制多边形区域:https://developer.baidu.com/map/jsdemo.htm#c2_9将以下的代码复制在打开的......
  • 《Go 语言并发之道》读书笔记(二)
    今天这篇笔记重点讲goroutine首先怎么定义goroutine很简单,在方法前面加上go就可以了funcmain(){ gosayHello()}funcsayHello(){ fmt.Println("hello")}也......
  • 3.go代理basic
    1.通过代理转换后端服务packagemainimport("encoding/base64""log""net/http""os""os/signal""strings")typewebHandlerstruct{......
  • VBA变量和函数名拼音输入提示
    VBA代码助手下载地址全球首发!VBA变量和函数名拼音输入提示!一直想做这个功能,从构想到实现,遇到了太多困难,不过随着代码行号研发过程中,我的个人技术得到极大提升,这个一直......