Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Generics 使用寿命参数的结果-使用寿命参数的枚举应用于默认T<';a>;和E<';a>;参数(锈蚀)_Generics_Rust_Enums_Lifetime Scoping - Fatal编程技术网

Generics 使用寿命参数的结果-使用寿命参数的枚举应用于默认T<';a>;和E<';a>;参数(锈蚀)

Generics 使用寿命参数的结果-使用寿命参数的枚举应用于默认T<';a>;和E<';a>;参数(锈蚀),generics,rust,enums,lifetime-scoping,Generics,Rust,Enums,Lifetime Scoping,我试图用一个生存期参数生成一个结果,作为对T(::Ok(T))和E(::Err(E))通用参数的额外限制 // enums A<'a> and B<'a> elided pub enum Result<'a, T=A<'a>, E=B<'a>> { Ok(T), Err(E), } 未定义参数,建议:在T之前添加参数 (两次) 这个建议使我大吃一惊 如何将带有生存期参数的泛型类型放入我的枚举泛型参数默认值中?错误是正

我试图用一个生存期参数生成一个
结果
,作为对
T
::Ok(T)
)和
E
::Err(E)
)通用参数的额外限制

// enums A<'a> and B<'a> elided

pub enum Result<'a, T=A<'a>, E=B<'a>> {
    Ok(T),
    Err(E),
}
未定义参数,建议:在T之前添加参数

(两次)

这个建议使我大吃一惊


如何将带有生存期参数的泛型
类型
放入我的
枚举
泛型参数默认值中?

错误是正确的,此类型没有意义:

由于寿命仅在默认参数中使用,因此在以下情况下寿命是什么:

让foo=Result::Ok(42);//在这种情况下,生命周期是多少?
?

未使用生存期,这就是错误消息的来源


这个问题没有提供太多的上下文,但看起来你只想在你的类型中使用
A
。如果是这种情况,那么您必须使用

发布枚举结果),

犯错误(如果您包含一些示例代码,这将有助于显示您正在尝试执行的操作的上下文。因为不清楚为什么不可能使用标准的
结果
,即返回类型为
结果>
。您可以使用别名代替默认类型:
键入MyResult,b谢谢!我一直在努力解决过度的问题。)y长
Result
类型,它没有“单击”我可以生成模块本地类型别名。我仍然想知道如何才能生成
enum
,其中
t
E
的生存时间总是相同的,这样我就可以像
let E=Result>和
那样构造
enum
:E
pub enum Result<T=A<'a>, E=B<'a>> {
    Ok(T),
    Err(E),
}