E0057

未匹配的标注

调用闭包时提供了无效的参数数目。

错误代码示例:

let f = |x| x * 3;
let a = f();        // 无效,参数太少
let b = f(4);       // 有效!
let c = f(2, 3);    // 无效,参数过多

当调用闭包或者其它函数 trait Fn ,FnMut , FnOnce 的实现时,传递给函数的参数的数目必须与其定义相匹配。

必须像这样对待泛型函数:

fn foo<F: Fn()>(f: F) {
    f(); // 这是有效的,但是 f(3) 不会生效
}

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
上一篇 下一篇
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~