You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为包含带生命周期参数的Foo引用的Bar类型声明生命周期参数?

Rust 带生命周期参数的结构体引用定义

你需要这样定义Bar结构体,同时满足你提出的两个要求:

struct Bar<'b, 'a: 'b> {
    foo: &'b Foo<'a>
}

对应要求的解释:

  • 引用生命周期与Bar一致:Bar的生命周期参数'b直接绑定到foo字段的引用生命周期&'b,确保这个引用的存活时长和Bar实例完全一致。
  • Foo生命周期只需长于Bar:通过'a: 'b的生命周期约束,强制Foo的生命周期'a至少不短于Bar的生命周期'b——只要满足这个条件,'a的具体长度不需要额外关心。

如果觉得参数冗余,也可以利用Rust的生命周期推导简化写法,多数场景下这样写也能满足需求:

struct Bar<'a> {
    foo: &'a Foo<'_>
}

这里的'_是匿名生命周期,Rust会自动推导它的长度至少不短于'a,不过显式写出约束的写法更清晰,适合需要明确生命周期关系的场景。


内容的提问来源于stack exchange,提问作者sak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 07:45:24