borrow-checker

    1熱度

    1回答

    我有以下代碼: pub type Blockchain<T> = Vec<Block<T>>; pub fn blockchain() -> Blockchain<String> { let size = 10; let mut chain: Blockchain<String> = Vec::with_capacity(size); chain.push(Blo

    0熱度

    1回答

    我對結構有一個可變引用,我想通過傳遞一個函數來更改它的一個字段,並將結果設置爲該字段的新值。但是,我收到「無法移出借來的內容」編譯錯誤。 這是證明我的問題,一個簡約的例子: struct InnerStruct { num: usize, } struct MyStruct { inner_struct: InnerStruct, } fn do_something

    2熱度

    2回答

    是否有可能借用結構的部分作爲可變的,而另一部分是不可變的 - 如果結構的字段是私有的。 fn main() { let mut ecs = EntityComponentSystem::new(); for e_id in ecs.get_entities_with_component::<Velocity>().unwrap() { let component

    -2熱度

    2回答

    所以我們的目標是編寫一個獲取兩條路徑的函數,input_dir和output_dir,並將所有降價文件從input_dir轉換爲output_dir中的html文件。 我終於設法讓它運行,但它非常令人沮喪。應該很難的部分非常容易:從Markdown到HTML的實際轉換實際上只有一行。看似簡單的部分是我花了最長的時間。使用路徑矢量並將所有文件放入它中,我用glob箱替換了它。不是因爲我無法工作,而是

    2熱度

    1回答

    我有一個Git倉庫隱藏在Mutex背後: pub struct GitRepo { contents: Mutex<GitContents>, workdir: PathBuf, } 我想查詢,但最多隻有一次:它被質疑之後,我只想用我們第一時間拿到了結果。存儲庫具有git2::Repository或結果向量。 A Repository是Send但不是Sync。 enum

    3熱度

    2回答

    我有一個Element s的數組,我想遍歷它做一些事情,然後遍歷循環內的所有Element做些事情。元素之間有一個關係,所以我想遍歷所有其他元素來檢查一些東西。這些元素是可變參考的原因。這有點寬泛,但我試圖成爲一般(也許我不應該)。 struct Element; impl Element { fn doSomething(&self, e: &Element) {} } fn

    0熱度

    1回答

    我剛開始學習Rust並通過Rust書進行工作。其中一章通過幾個例子,並以「嘗試進行這種通用」類型的建議練習結束。我一直對此感到震驚。你開始的半通用型是這樣的:「值」 struct Cacher<T> where T: Fn(i32) -> i32 { value: Option<i32>, // leaving out rest for brevity 然後我去

    1熱度

    2回答

    我正在嘗試寫一個chip8模擬器,並且借用檢查器給我一個很難的時間。 的想法是通過尋找一個方法指針HashMap內,然後執行該方法指針解碼的操作碼,但我不能得到可變方法指針正常工作:採用指針 struct Chip8 { opcode: u16, //... other fields jump_table: HashMap<u16, Box<fn(&mut Chip8

    2熱度

    1回答

    我想返回城市/城鎮/村莊的名稱作爲參考str。我可以在實現中指定生命週期,但也可以爲枚舉指定錯誤,因爲它沒有聲明引用。 enum CityType { City { name: String /* ... */ }, Town { name: String /* ... */ }, Village { name: String /* ... */ }, } im

    1熱度

    1回答

    我試圖在循環中獲得可變借入,並且我無法使其工作。我已經嘗試了所有可能的衛兵,生魚指針,一切。 struct Test<'a> { a: &'a str, } impl<'a> Test<'a> { pub fn new() -> Self { Test { a: &mut "test" } } pub fn dostuff(&'a mut