lifetime

    0热度

    1回答

    感谢您纠正我提问的方式。我做了几次修改,以使代码可编译。 use std::marker::PhantomData; struct Brace { x: i32, } impl Brace { fn transform(&self, n: i32) -> Devil { Devil { hp: self.x + n, weapo

    2热度

    1回答

    我在函数中新分配了String,我需要创建一个派生对象,它从String中借用&str,并返回给定的对象。 我知道我的代码是错误的,因为String生命周期是函数的生命周期,所以派生对象永远不会因为悬挂引用而返回。 这是什么地方的习惯解决方案?我不能改变的serde_json::from_str #[inline] pub fn get_object<'a, T>(json_data: &'a

    1热度

    1回答

    鲁斯特抱怨get_string活得不够长。它似乎想在整个功能范围内保持活力,但我不明白这是如何发生的。 error: `get_string` does not live long enough --> src\lib.rs:7:23 | 7 | for value_pair in get_string.split('&') { | ^^^^^^^^^^

    1热度

    1回答

    我一直试图在Rust中创建一个简单的解释器。这是一段代码片段。 use std::vec::Vec; use std::option::Option; use std::borrow::Borrow; trait Data {} trait Instruction { fn run(&self, stack: &mut Vec<Box<Data>>) -> Option<&D

    1热度

    2回答

    它出现在我的代码中,一个值比它的引用寿命更长,即使两者都在相同的范围内创建。我想知道为什么,以及如何调整我参考的一生。 例1是由编译器所接受...... let mut rxs: Vec<Receiver<String>> = Vec::new(); let mut txs: Vec<SyncSender<String>> = Vec::new(); for _ in 0..N {

    9热度

    2回答

    函数时 我使用SERDE和serde_json 1.0从一个base64字符串数据进行解码: fn from_base64_str<T: Deserialize>(string: &str) -> T { let slice = decode_config(string, URL_SAFE).unwrap(); serde_json::from_slice(&slice).u

    15热度

    2回答

    鉴于以下功能: use std::io::{BufRead, stdin}; fn foo() -> usize { let stdin = stdin(); let stdinlock = stdin.lock(); stdinlock .lines() .count() } 这失败,出现以下错误编译: error: `stdin`

    0热度

    1回答

    我试图在“SFML游戏开发”一书中编写示例,但我遇到了应该代表游戏世界的结构的生存期问题。错误如下: extern crate sfml; use self::sfml::window::*; use self::sfml::graphics::*; pub struct Game<'s> { mWindow: RenderWindow, mPlayer: &'s C

    3热度

    2回答

    我有一个特点它说的Foo任何实施需要提供一种方法bar它返回某种类型的,它实现Iterator<Item = u32>的目的: trait Foo { type FooIterator: Iterator<Item = u32>; fn bar(&self) -> FooIterator; } 对于这种情况,我相信默认的生存期限elision意味着由bar返回的迭代器需要

    -1热度

    1回答

    我进入了必须管理依赖关系生命周期的点。这些依赖关系打开到不同数据库的连接。并注册到Unity容器。统一容器在应用程序启动期间注册组件。 我想知道它的应用程序启动的时候发生?它在每个用户请求中吗? 我非常感谢您对此的帮助。