使用共享引用說明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所有權__OwnershipRust
- Rust 所有權如何理解Rust
- Rust 所有權和借用Rust
- rust配置說明Rust
- 【Rust學習】記憶體安全探秘:變數的所有權、引用與借用Rust記憶體變數
- RUST所有權相關問題Rust
- rust學習五、認識所有權Rust
- 使用說明
- 所有初始化引數說明(轉)
- 【MEMORY】Oracle 共享池堆簡單說明Oracle
- 使用者角色許可權控制包 Laravel-permission 使用說明Laravel
- FreeSql 使用說明SQL
- postman 使用說明Postman
- QLExpress使用說明Express
- WebApiClientCore使用說明WebAPIclient
- Jupiter 使用說明
- certbot 使用說明
- cmake使用說明
- ApplicationContextAware使用說明APPContext
- nofollow權重說明 nofollow是否傳遞權重?
- 帝國cms所有資料庫欄位說明資料庫
- oradebug的使用說明
- axios使用說明書iOS
- wc 命令使用說明
- oracle orapwd使用說明Oracle
- JPA EntityManager使用說明
- markdown使用小說明
- C# BitmapData使用說明C#
- jarsigner 簡單使用說明JAR
- OpenGrok簡單使用說明
- cityAreaSelect.js使用說明JS
- 微前端說明以及使用前端
- JavaScript の querySelector 使用說明JavaScript
- Rust 程式設計影片教程對應講解內容-所有權Rust程式設計
- Docker 使用者操作使用說明Docker