E0128

未匹配的标注

类型参数默认值使用了前置声明(forward declared)的标识符。

错误代码示例:

struct Foo<T = U, U = ()> {
    field1: T,
    field2: U,
}
// error: 泛型参数的默认值不能使用前置声明的标识符

默认类型参数只能使用在它们之前产生的参数,由于类型参数是按顺序执行的,改问题可被修复如下:

struct Foo<U = (), T = U> {
    field1: T,
    field2: U,
}

请同样确保不是因为名称冲突,如果是,请重命名类型参数。

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

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/rust-rcei-2020/...

译文地址:https://learnku.com/docs/rust-rcei-2020/...

上一篇 下一篇
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~