闭包传参

直接上代码

func main() {
    a := make([]int, 3, 3)
    fmt.Println(a) //[0 0 0]
    func(a []int){
        a = nil
    }(a)
    fmt.Println(a) //[0 0 0]
    func(){
        a = nil   //闭包对外部环境是通过引用访问的,可以直接修改外部的值
    }()
    fmt.Println(a) //[0]
}

闭包函数可以通过外部函数的参数来传递参数。在闭包函数内部,可以使用外部函数的参数作为闭包函数的局部变量。这样,在每次调用闭包函数时,就不需要再次传递参数了。例如,可以定义一个外部函数outer,接受参数username,然后在outer函数内部定义一个闭包函数index,该闭包函数可以使用外部函数的参数username作为局部变量。这样,在调用闭包函数时,就可以直接使用外部函数传递的参数值。示例代码如下: ``` def outer(username): def index(): print(username) return index res = outer('kevin') res() # 输出kevin res1 = outer('jason') res1() # 输出jason ``` 在这个例子中,outer函数接受一个参数username,并在内部定义了闭包函数index。闭包函数index可以使用外部函数outer的参数username作为局部变量。当调用outer函数时,会返回闭包函数index。然后,可以通过调用返回的闭包函数来执行闭包函数的函数体代码,并且每次调用都会使用外部函数传递的参数值。 #### 引用[.reference_title] - *1* *2* [【python闭包函数与装饰器】](https://blog.youkuaiyun.com/Ban_a/article/details/123581987)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Python之闭包函数](https://blog.youkuaiyun.com/qq_16694047/article/details/129013247)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值