rust儲物箱怎麼帶走 Rust Rc 方法整理

2021-10-13 09:02:07 字數 1251 閱讀 3342

ref: alloc::rc::rc – rust

方法new

pintry_unwrap

into_raw

from_raw

downgrade

weak_count

strong_count

get_mut

ptr_eq

make_mut

downcast

std::rc::rc 是單執行緒引用計數指標。』rc』 代表 『reference counted』。

rc 的固有方法都是關聯函式,這意味在使用應該是用類似 rc::get_mut(&mut value) 而不是 value.get_mut() 的方式呼叫。這可以避免與其包含的型別方法衝突。

方法new

pub fn new(value: t) -> rc

構造乙個 rc

例子use std::rc::rc;

let five = rc::new(5);

pinpub fn pin(value: t) -> pin>

構建乙個新的 pin>。如果 t 沒有實現 unpin,那麼 value 將會固定在記憶體中不可移動。

try_unwrap

pub fn try_unwrap(this: self) -> result

如果 rc 有且只有1個強引用,則返回包含的值,否則返回 err。

不管 rc 有多少弱引用,只要符合上述條件,該函式都將成功。

use std::rc::rc;

fn main() , 4);

from_raw

pub unsafe fn from_raw(ptr: *const t) -> self

從裸指標中構建乙個 rc。

裸指標必須是從 rc::into_raw 中返回的裸指標。

這個函式是不安全的,因為不正確使用可能會導致記憶體問題。例如,在裸指標上二次釋放資源。

use std::rc::rc;

let x = rc::new(10);

let x_ptr = rc::into_raw(x);

unsafe ): {}", string.len(), string);

fn main() {

let my_string = "hello world".to_string();

print_if_string(rc::new(my_string));

print_if_string(rc::new(0i8)); // 不會列印

rust怎麼關陽光指令 Rust入坑指南 步步為營

俗話說 測試寫得好,獎金少不了。寫單元測試一般需要三個步驟 準備測試用例,測試用例要能覆蓋盡可能多的 執行需要測試的 判斷結果,是否是你希望得到的結果 了解了這些以後,我們就來看看在rust中應該怎麼寫單元測試。首先我們建立乙個library專案 cargo new adder lib create...

rust整理筆記 rust基本操作 01

1.安裝 1.1 rust mac安裝 curl ssf shsource home cargo env1.2.顯示rustc版本 rustc version 注 如果顯示版本號 提交的 hash 值和提交時間,恭喜你!則 rust 已成功安裝!1.3.顯示cargo cargo version如果...

rust腐竹是什麼意思 Rust

rust 資料型別 rust 語言中的基礎資料型別有以下幾種。整數型 integer 整數型簡稱整型,按照位元位長度和有無符號分為一下種類 位長度有符號 無符號8 bit i8u8 16 bit i16u16 32 bit i32u32 64 bit i64u64 128 bit i128 u128...