lifetime 相关问题

变量的生命周期是变量绑定到特定内存位置的时间。生命时间在分配变量时开始,在解除分配时结束。

为什么 Rust 不能自动给出参数中的最短生命周期?

从 Rust 编程语言书我到达了生命的章节。我不明白为什么 Rust 编译器很难自动赋予函数参数最短的生命周期...

回答 1 投票 0

如何为必须可序列化的特征添加特征边界

我无法使用以下代码(游乐场:https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=4379c2006dcf3d32f59b0e44626ca667)。 使用 serde::{序列化,

回答 1 投票 0

有没有一种在保持所有权的同时使用带有指针的枚举的好方法(跟进)

这是这个问题的后续 我有另一个枚举: 枚举 InfoP<'a, 'b> { Imut(&'a Info<'b>), Mut(&'a mut Info<'b>), } 所以我尝试了解决方案: 实施<'a, '...

回答 0 投票 0

在循环的上一次迭代中在这里可变借用

在接下来的i中,在接下来的MVE中,我有一个包含AElem向量的结构A。每个 AElem 都包含一个引用其他 AElems 的地图。 使用 std::collections::HashMap; 结构 AElem<'b> ...

回答 0 投票 0

在构建器模式中捕获 &str 时如何使用生命周期?

我正在研究一个随机文本生成器,它将存储输出的“模式”(以及其他参数),我认为 &str 是正确的数据类型,因为我的图书馆的用户...

回答 1 投票 0

c++ 带不同括号的生命周期扩展

我正在尝试了解 C++ 中的生命周期扩展保证。有人可以解释为什么使用下面不同类型的括号会在临时对象何时出现方面产生不同的结果

回答 1 投票 0

尝试在方法中使用相同的生命周期参数时,为什么会出现 Lifetime 'a already in scope 错误?

在下面的代码中,我收到错误 Lifetime 'a already in scope for the new method。使用与 A 相同的范围有什么问题?我认为这是有道理的。 结构 A <'a>{ 一:维克<&a...

回答 1 投票 0

不能重复泛型的引用

我有一个带有两个泛型的结构 酒吧结构矩形 { 身高: T, 宽度:U, } 使用 impl 块 impl< T, U> 矩形 { pub fn new(身高:T,

回答 0 投票 0

为什么我不能克隆可克隆构造函数的“Vec”?

我有一个结构包装了 Box 构造函数的 Vec,我断言它是克隆的。 我有一个特征 Ctor,它采用克隆逻辑并生成另一个 Box。它...

回答 1 投票 0

编译器抱怨临时值被创建但不确定如何以及在哪里? [重复]

参考这个问题,我试着编译了一下,做了一些改动: pub trait GetIter<'a> { 输入 IntoIter:IntoIterator; fn get_iter(&'a self) -> 自我::

回答 1 投票 0

创建 RW 守卫的迭代器时,借用的值寿命不够长

问题:我想要一个迭代器在保护下的项目(在这种情况下为 RwLockReadGuard)。这些项目不是参考,它们是克隆的。 看起来很像那些问题: 我如何返回 Iter ...

回答 1 投票 0

迭代器、守卫和两次生命周期

对不起下面的一个有点罗嗦的例子。 问题:我想要一个迭代器在保护下的项目(在这种情况下为 RwLockGuard)。这些项目不是参考,它们是克隆的。 好像很像……

回答 0 投票 0

Lifetime可能活的不够长,lifetime annotation放哪?

#[派生(调试、默认、克隆、复制、序列化)] pub struct Unit<'a> { id: &'a 海峡, } impl 单位<'_> { fn unpack<'a>(bytes: &'a [u8]) -> Option { ...

回答 2 投票 0

Lifetime可能活的不够长,把lifetime注解放哪?

#[派生(调试、默认、克隆、复制、序列化)] pub struct Unit<'a> { id: &'a 海峡, } impl 单位<'_> { fn unpack<'a>(bytes: &'a [u8]) -> Option #[derive(Debug, Default, Clone, Copy, Serialize)] pub struct Unit<'a> { id: &'a str, } impl Unit<'_> { fn unpack<'a>(bytes: &'a [u8]) -> Option<Unit<'a>> { match from_utf8(bytes) { Ok(v) => Some(Self { id: v }), Err(_) => None, } } } 问题就在这一行Some(Self { id: v })上,v的值为错误:“lifetime may not live long enough associated function was supposed to return data with lifetime 'a but it is returns data with lifetime '1 " 固定: #[derive(Debug, Default, Clone, Copy, Serialize)] pub struct Unit<'a> { id: &'a str, } impl<'a> Unit<'a> { fn unpack(bytes: &'a [u8]) -> Option<Unit<'a>> { match from_utf8(bytes) { Ok(v) => Some(Self { id: v }), Err(_) => None, } } } 这里的问题是impl Unit<'_>,看起来这样使得Self类型成为Unit<'1>。如果您像这样将 impl 指定为 Unit<'a>,那么生命周期关系就可以了: #[derive(Debug, Default, Clone, Copy)] pub struct Unit<'a> { id: &'a str, } impl<'a> Unit<'a> { fn unpack(bytes: &'a [u8]) -> Option<Self> { match core::str::from_utf8(bytes) { Ok(v) => Some(Self { id: v }), Err(_) => None, } } } 我还需要在呼叫站点解决问题,为此通过将 'a 添加到 unpack(bytes: &[u8]) 使其成为 unpack(bytes: &'a [u8])。这确保字节的整个生命周期在所有相关数据之间共享。 pub struct TAIP<'a> { /// [char; 1] pub qualifer: Qualifer, /// [char; 2] pub message: Message, pub data: Data, /// This is referred to as ID in the spec. pub unit: Option<Unit<'a>>, } impl<'a> TAIP<'a> { fn unpack(bytes: &'a [u8]) -> Result<Self, &'static str> { let pv = PV::unpack(&bytes[4..34]); Ok(Self { qualifer: Qualifer::from_u8(bytes[1] as char), message: Message::unpack(&bytes[2..4]), data: Data::PV(pv), unit: Unit::unpack(&bytes[38..42]), }) } }

回答 2 投票 0

我什么时候需要在泛型类型上强加“静态特征绑定”

rust 编译器请求在泛型类型上添加一些被忽视的特征边界的情况发生在右侧、左侧和中心。没什么好喊的。 然而我碰巧试图弄清楚为什么我被建议......

回答 2 投票 0

调用在闭包中采用 `&self` 的方法时的生命周期问题

我正在尝试将我的代码从处理一组带有 join_all 的 futures 转换为流,因为这似乎是一种更强大的方法,因为它允许我在它们出现时立即处理未来的结果

回答 1 投票 0

Rust 函数指针似乎被借用检查器视为有状态

以下示例代码无法编译: fn invoke(i: i32, mut f: impl FnMut(i32)) { f(i) } fn 主(){ 让 f: fn(i32, _) = 调用; 让 mut 和:i32 = 0; 因为我在 0..10 { _ ...

回答 0 投票 0

从引用中提取关联类型,而不指定生命周期

最近的一篇文章探讨了使用 py03 从应用程序的结构中删除生命周期参数的问题。在那个问题中,我们有一个特点 pub trait GetIter { 输入 IntoIter:IntoIterato...

回答 0 投票 0

serde_json 将 String 转换为具有生命周期注释的类型会导致问题

pub async fn checkin_seed_node<'a>(appstate:Arc>){ 环形 { 让响应: Response = call_seed_node(&appstate.client).await; 让身体=反应...

回答 1 投票 0

返回关联常量数组元素的关联函数?

我用一个例子来说明这个一般性问题:我有一个 Color-Struct,它包含三个 u8(红色、绿色、蓝色)。 Color 有一个关联常量 Color::PREDEFINED 和一些预定义的颜色。我...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.