ITPub博客

首页 > 区块链 > 区块链 > Golang闭包案例

Golang闭包案例

原创 区块链 作者:lsq_008 时间:2023-08-25 17:40:08 0 删除 编辑

package main

import (
    "fmt"
)

//闭包的说明
//返回的是一个匿名函数,但是这个匿名函数引用到函数外的n,因此这个匿名函数就和n形成一个整体。
//构成了闭包
//可以这样理解,闭包是类,n是字段,函数是操作
//当我们反复的调用f函数时,因为n初始化一次,因此每调用一次就进行累加

func AddUpper() func(int) int {
    var n int = 10
    var str string = "Hello"
    return func(x int) int {
        n = n + x
        str += string(36)
        fmt.Println("str = ", str)
        return n
    }
}

func main() {

    f := AddUpper()
    fmt.Println(f(1))
    fmt.Println(f(2))
    fmt.Println(f(3))
}


[Running] go run "e:\go_project\main\main.go"
str =  Hello$
11
str =  Hello$$
13
str =  Hello$$$
16





来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10972173/viewspace-2978421/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论
十余年大型金融及电信系统数据库管理经验,曾服务于中国建设银行、中国移动。对oracle,mysql数据库有深入了解。 擅长python开发,独立开发了开源数据库自动化监控运维平台Power Monitor。

注册时间:2008-02-29

  • 博文量
    335
  • 访问量
    1369102