Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >创建带有可变参数的谓词

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 04:33:13

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

复制
相关文章
创建包含源文件的IP-带有参数
有时候我们想参考官方的源码,但是有些IP怎么也找不到官方的源码,具体原因是什么呢?
碎碎思
2021/01/13
2.1K0
创建包含源文件的IP-带有参数
可变参数的函数
C语言允许定义参数数量可变的函数,这称为可变参数函数(variadic function)。这种函数需要固定数量的强制参数,后面是数量可变的可选参数。其中,强制参数必须至少一个,可选参数数量可变,类型可变,可选参数的数量由强制参数的值决定。 C 语言中最常用的可变参数函数例子是 printf()和 scanf()。这两个函数都有一个强制参数,即格式化字符串。格式化字符串中的转换修饰符决定了可选参数的数量和类型。 可变参数函数格式:int fun(int a,...)
用户7272142
2023/10/11
2300
Java 可变参数
Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。注意:可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。
MonroeCode
2018/01/11
1.7K0
[c/c++]可变参数加法
p.s. 无聊研究了一下这个 函数声明: int add(int count, ...); 调用范例: add(5, 1, 2, 3, 4, 5); 代码如下: int add(int count, ...) { va_list va; va_start(va, count); int sum = 0; for(int i = 0; i < count; i++) sum += va_arg(va, int); va_end
ApacheCN_飞龙
2019/02/15
1.2K0
Python 可变参数的坑
Python 的可变参数有*args的位置可变参数和**kwargs参数可变两种. 今天在DEBUG的时候发现了一个非常棘手的**kwargs的坑.
用户1416054
2018/08/02
7170
Golang可变参数
既然我们知道了可变参数会被转换成切片,那么通过go语法糖,可以将一个存在的分配当作可变参数的参数。
春哥大魔王
2018/09/21
7850
Java 可变参数
上例程序实现的是一个方法接受不同长度的数据内容,并将内容值进行累加处理;之所以使用数组,是因为多个参数无法具体的描述,只可以用数组的方式来接收多个不定的参数。
Mirror王宇阳
2020/11/10
1.1K0
less中的可变参数
当前我们的混合的参数都需要传递,如果都需要全部传递可以使用 @arguments,@arguments 代表着就是你传入的所有参数,less 中的 @arguments 和 js 中的 arguments 一样,可以拿到传递进来的所有形参,这个时候你就不用足一的赋值,如下
程序员 NEO
2023/09/29
2090
less中的可变参数
Sass中的可变参数
SASS 中的可变参数和 LESS 中也一样,只不过由于 SASS 不是使用 JS 实现的,所以不能直接在混合中使用 arguments,必须通过 $args... 的格式来定义可变参数,然后通过 $args 来使用,注意点:和 LESS 一样可变参数必须写在形参列表的最后:
程序员 NEO
2023/09/29
1890
Sass中的可变参数
c++ 可变参数 默认类型升提升 可变参数陷阱
printf("%p,%p,%p,%p,%p,%p,%p\n", &t.a, &t.b, &t.c, &t.d,&t.e,&t.f,&t.z);
用户7886150
2021/02/14
7700
【JavaSE】可变参数的基本使用
可变参数 1. 基本概念 Java 允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法 就可以通过可变参数实现 2. 基本语法 访问修饰符 返回类型 方法名(数据类型... 形参名) { } 3. 快速入门案例 VarParameter01.java 看一个案例 类 XdrMethod,方法 sum 【可以计算 2 个数的和,3 个数的和 , 4. 5, ...】 public int sum(int n1, int n2){ return n1 + n2; }
兮动人
2021/12/30
4400
整理C/C++的可变参数
c语言中使用可变参数最熟悉应该就是printf, 其是通过...来从代码语句中表示可变化的参数表。
Rock_Lee
2020/09/21
5.6K0
C/C++开发基础——可变参数与可变参数模板
1.如果可变参数的参数类型相同,可以使用标准库中的initializer_list。
Coder-ZZ
2023/09/04
7170
C/C++开发基础——可变参数与可变参数模板
Java 可变参数 原
Java1.5增加了新特性: 可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。 注意:可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。 可变参数的特点: (1)、只能出现在参数列表的最后;  (2)、...位于变量类型和变量名之间,前后有无空格都可以; (3)、
wuweixiang
2018/08/14
6790
可变参数列表
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/112751.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/08
4100
C++可变参数
Java中的可变参数其实就是数组,对C++的可变参数比较好奇,所以上网查了资料,了解下!
卡尔曼和玻尔兹曼谁曼
2019/01/25
1.8K0
python中函数的可变参数
print(1,2,"hello","刘金玉编程","编程创造城市",end="$$$")
刘金玉编程
2019/07/30
2.2K0
78-带有参数的装饰器
def color(func): def red(*args): return '\033[31;1m%s\033[0m' % func(*args) return r
凯茜的老爸
2018/09/11
1.1K0
Python进阶——带有参数的装饰器
带有参数的装饰器就是使用装饰器装饰函数的时候可以传入指定参数,语法格式: @装饰器(参数,...)
落雨
2022/03/08
33.2K1
过程(五)可选参数和可变参数
大家好,上节介绍了过程传递参数时,形参与实参结合的两种方式,传地址和传值。本节将介绍可选参数和可变参数。
无言之月
2019/10/13
4.8K0

相似问题

具有可变参数数的Prolog谓词

12

NSPredicate -带有参数的动态谓词

22

创建带有可变长度参数python的函数。

21

如何创建带有可变参数数的函数变量?

12

带有可变参数的函数。

36
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文