首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >创建带有可变参数的谓词

创建带有可变参数的谓词
EN

Stack Overflow用户
提问于 2020-06-10 06:48:53
回答 1查看 137关注 0票数 1

我正在尝试创建一个函数,接受一个谓词和一个列表,并在每一项上调用谓词。我试过这样的东西

代码语言:javascript
代码运行次数:0
运行
复制
func hello(list []int, f func( int ) ) {
    for _, curr := range list {
        f(curr)
    }
}

问题是,我的谓词可能有其他参数需要先传入,比如func pred(a string, b string, curr int, c string)。因此,现在我不能只调用hello,而不先创建一个包装函数,该函数返回一个只需要int部分(名为curr)的函数。有没有一个干净的解决方案?我几乎想要传递一个结构,其中每个键都是一个参数名,每个值都是要作为该参数传递的值。但不知何故,我需要将"int part“保留为空,并知道在hello的求值过程中使用它。我不太熟悉接口,但也许我可以以某种方式利用它们?不太确定解决这类问题的最佳实践是什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-10 12:33:13

使用Function literals来解决此问题。问题中的场景是该功能的一个重要用例:

代码语言:javascript
代码运行次数:0
运行
复制
hello([]int{1, 2, 3, 4}, func(cur int) { pred(a, b, cur, c) })

如果abc在作用域中,则不需要返回问题中所声称的函数的函数。

See it in action on the playground

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62293126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档