使用共享引用說明Rust所有權概念
共享引用(&T)是複製Copy特性(見這裡,值複製)。
下面是一個常用型別的例子,字串slice片&str。
下面我們可以在第3行和第4行將name傳遞給do_something。注意,我們正在複製引用。
fn main() { let name: &'static str = "Rust"; do_something(name); do_something(name); } fn do_something(name: &str) { println!("Hello, {:?}!", name); } |
輸出:
Hello, Rust! Hello, Rust! |
下面程式碼在把name傳給do_something之前呼叫.clone()是多餘的。
fn main() { let name: &'static str = "Rust"; do_something(name.clone()); do_something(name.clone()); } fn do_something(name: &str) { println!("Hello, {:?}!", name); } |
根據Clippy的建議,<&str>::clone(&name)這個習慣語會克隆引用。該程式可以編譯,但我不確定這是否是習慣用法。
fn main() { let name: &'static str = "Rust"; do_something(<&str>::clone(&name)); do_something(<&str>::clone(&name)); } fn do_something(name: &str) { println!("Hello, {:?}!", name); } |
相關文章
- Rust所有權及引用Rust
- 用Iterator解釋Rust所有權概念Rust
- 通俗易懂解釋Rust所有權和借用概念Rust
- Rust:Programming Rust:所有權Rust
- Rust所有權__OwnershipRust
- rust配置說明Rust
- Rust 所有權和借用Rust
- Rust 所有權如何理解Rust
- 【Rust學習】記憶體安全探秘:變數的所有權、引用與借用Rust記憶體變數
- RUST所有權相關問題Rust
- rust學習五、認識所有權Rust
- 使用說明
- 【MEMORY】Oracle 共享池堆簡單說明Oracle
- WebApiClientCore使用說明WebAPIclient
- QLExpress使用說明Express
- postman 使用說明Postman
- Sqlite使用說明SQLite
- cmake使用說明
- certbot 使用說明
- nofollow權重說明 nofollow是否傳遞權重?
- 使用者角色許可權控制包 Laravel-permission 使用說明Laravel
- JPA EntityManager使用說明
- wc 命令使用說明
- oracle orapwd使用說明Oracle
- Jupiter 使用說明
- BaseRecyclerViewAdapterHelper使用說明ViewAPT
- HSQL DB 使用說明SQL
- FreeSql 使用說明SQL
- 帝國cms所有資料庫欄位說明資料庫
- rac後臺程式說明及一些概念
- Oracle HRMS中的共享資訊以及使用者型別選擇的說明Oracle型別
- 關於 RPM 命令的權威說明
- C# BitmapData使用說明C#
- axios使用說明書iOS
- ApplicationContextAware使用說明APPContext
- 微前端說明以及使用前端
- IDEA Git 使用說明IdeaGit
- SCREEN安裝使用說明