ownership

    11熱度

    2回答

    根據Steve Klabnik's writeup in the pre-Rust 1.0 documentation on the difference between String and &str,在Rust中,您應該使用&str,除非您確實需要擁有String以上的所有權。同樣,除非您確實需要對Vec的所有權,否則建議使用對切片的引用(&[])而不是Vec。 我有一個Vec<String>

    1熱度

    1回答

    我堅持用借款和可變的鏽概念: #[derive(Debug)] struct Rectangle { height: u32, width: u32, } fn mut_area(rect_mut: &mut Rectangle) -> u32 { rect_mut.width /= 2; rect_mut.height * rect_mut.wid

    1熱度

    1回答

    我正在嘗試爲我正在編寫的遊戲實現一個控制檯系統,並且已經找到一個相當簡單的系統:我定義了一個將命令存儲爲盒裝封閉的對象(Console)對於某些'a,具體爲Box<FnMut + 'a>)。只要Console在其他任何東西之前創建,這適用於引擎的任何組件。 不幸的是,這使我無法添加修改Console本身的命令,這意味着我無法創建簡單地打印文本或定義其他變量或命令的命令。我已經寫了複製錯誤的一個小例

    1熱度

    2回答

    我想寫一個小包裝VecDeque。 具體我的代碼(playground):這給了我下面的錯誤 use std::collections::VecDeque; trait VecCircleTraits<T: Eq> { fn new() -> VecCircle<T>; fn find_and_remove(&self, _: T) -> Option<T>; } #

    -1熱度

    1回答

    這兩個::和::標點符號都可以在類或基類內的子類中綁定函數的所有權。但是不清楚什麼時候使用每種方法,哪些放在頭文件中,哪些放在cpp源文件中(如果這是個人風味,請告訴更常見的約定)。簡明的例子將是非常可觀的!和:: 在此先感謝: 如果我錯了或不夠精確,並列出其他情況下,如果我錯過了一些使用請指正。

    2熱度

    1回答

    我很理解MVC模式,但在C++中實際實現的信息量驚人地少。對於這個應用程序,我使用wxWidgets和boost::depedency_injection,但情況應該是通用的。 在C++ 11/14中,我們對對象所有權有嚴格的規則:對象是在所有者之間共享的,或者是一個所有者唯一的。我們還爲被調用者非擁有的對象提供舊式指針。 所以,問題是:誰在C++中擁有MVC中的哪個對象(模型/視圖/控制器)?

    1熱度

    2回答

    我嘗試使用FFI編寫一些Rust代碼,它涉及讓C取得一些本地創建的結構的所有權。 fn some_function() { let c = SomeStruct::new(); unsafe { c_function(&mut c); } } 我想c_function採取局部struct c的所有權。在C++中,可以通過release獲得unqiue

    2熱度

    1回答

    與Ubuntu,我以前使用在終端下面的代碼創建的MySQL數據庫: $ my sql -u root -p 那麼MySQL中: CREATE DATABASE securities_master; 我試圖用文件管理器來查看有關該數據庫的內容。但因爲我沒有權限打開文件夾/ var/lib/mysql,所以我想更改此文件夾的權限。我做了一些搜索的計算器,並沒有完全理解我在做什麼,我用類似如下(

    2熱度

    1回答

    即使閱讀參考所有權和借貸的章節後,我不明白有些東西在下面的代碼,有效地調用從clap::App一種以上的方法阻止我! extern crate clap; use clap::{App}; fn main() { let mut app = App::new("name me") .args_from_usage("<input_file> 'Sets the

    1熱度

    1回答

    所以我們假設我有一堆按鈕的菜單,點擊每個按鈕後會將我帶到另一個窗口。我需要這些其他窗口作爲主要焦點,因此我使用了initModality和initOwner函數。 下面是有問題的按鈕中的一個動作監聽: public void manageUsersAction() { try { currentStage = (Stage) manageUsers.getScene().ge