You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go中被调用函数如何访问调用函数参数?附代码示例

这是Go语言中的**闭包(Closure)**特性

在Go语言里,匿名函数可以捕获并访问它定义时所在作用域的变量——哪怕这个匿名函数被传递到其他函数(比如这里的sort.Slice)中执行,它依然能持有对这些外部变量的引用,这就是闭包的核心能力。

回到你的代码:
customSortString函数里的匿名Less函数,定义在customSortString的作用域内,所以它可以直接访问该作用域下的order参数,不需要额外把order传递给sort.Slice。当sort.Slice内部调用这个匿名函数时,它自然能读取到order的值。

另外补充:闭包不仅能读取外部变量,要是变量是可修改类型(比如指针、切片等),闭包还能修改这些变量的值,这也是Go里闭包常用的场景之一。

内容的提问来源于stack exchange,提问作者SeattleOrBayArea

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 05:42:38