登录
首页 >  Golang >  Go问答

创建接受可变数量参数的谓词

来源:stackoverflow

时间:2024-02-25 18:42:25 215浏览 收藏

今天golang学习网给大家带来了《创建接受可变数量参数的谓词》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

问题内容

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

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 部分”留空,并知道在评估 hello 期间使用它。我对界面不太熟悉,但也许我可以以某种方式利用它们?不太确定解决此类问题的最佳实践是什么。


解决方案


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

hello([]int{1, 2, 3, 4}, func(cur int) { pred(a, b, cur, c) })

如果 abc 在范围内,则不需要返回问题中声明的函数的函数。

See it in action on the playground

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《创建接受可变数量参数的谓词》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>