是否可以定义一个带有可调用参数的函数,其中可调用的参数数量未指定?

Is it possible to define a function with callable parameter, where callable has unspecified number of arguments?

提问人:Archirk 提问时间:11/5/2023 最后编辑:Archirk 更新时间:11/5/2023 访问量:50

问:

假设我有这样的特质:

trait Task<T> {
  fn solve(&self, func: fn(T) -> T) -> T;
}

该设置仅允许传递以下功能:

fn solution(n: i32) -> i32{n}

但是我想传递带有任意数量参数的函数,例如:

fn solution_2(n: String, i: i32) -> i32{0}
fn solution_3() -> i32 {0}
// etc

我不明白如何在方法中定义(以及我可以定义)参数,以便它可以接受具有任意数量参数的可调用对象。func.solve()

我认为这是不可能的,因为那样就没有办法知道如何调用内部求解。func

所以这似乎是错误的思维方式。

仿制药 蚀性状

评论

3赞 Chayim Friedman 11/6/2023
你想用这个函数做什么?
1赞 Chayim Friedman 11/6/2023
另外,该特征是否需要是对象安全的?
0赞 Archirk 11/6/2023
对于这个例子,我做了更合乎逻辑的解决方法,不需要将可调用对象传递给方法。因此,我在这里的问题只是关于定义 callabl e 的可能性,这些参数的数量不确定。我是生锈的新手,所以我不清楚关于物体安全的问题,所以显然 asnwer 是否定的。
0赞 Caesar 11/6/2023
Rust 对函数的参数数量没有任何概括。使用元组。
0赞 Chayim Friedman 11/6/2023
“对象安全”意味着能够创建.dyn Task

答: 暂无答案